diff options
author | Jules Colding <jcolding@src.gnome.org> | 2007-05-11 19:55:57 +0800 |
---|---|---|
committer | Jules Colding <jcolding@src.gnome.org> | 2007-05-11 19:55:57 +0800 |
commit | c4d980042effc629e4caa36abe551874e5ef8226 (patch) | |
tree | 5f4baf19704f7e93eecdf23538d29f230f58b04d /plugins/sa-junk-plugin | |
parent | 9d237347078b5df54cbdc30d988a4b5253105cc1 (diff) | |
download | gsoc2013-evolution-c4d980042effc629e4caa36abe551874e5ef8226.tar.gz gsoc2013-evolution-c4d980042effc629e4caa36abe551874e5ef8226.tar.zst gsoc2013-evolution-c4d980042effc629e4caa36abe551874e5ef8226.zip |
Fix file descriptor leaks (#437664)
svn path=/trunk/; revision=33512
Diffstat (limited to 'plugins/sa-junk-plugin')
-rw-r--r-- | plugins/sa-junk-plugin/ChangeLog | 5 | ||||
-rw-r--r-- | plugins/sa-junk-plugin/em-junk-filter.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/plugins/sa-junk-plugin/ChangeLog b/plugins/sa-junk-plugin/ChangeLog index 9adab6f392..9cec485bdf 100644 --- a/plugins/sa-junk-plugin/ChangeLog +++ b/plugins/sa-junk-plugin/ChangeLog @@ -1,3 +1,8 @@ +2007-05-11 Jules Colding <colding@omesc.com> + + * em-junk-filter.c (pipe_to_sa_full): File descriptor leaks fixed. + Fixes bug #437664. + 2007-05-11 Gilles Dartiguelongue <dartigug@esiee.fr> * em-junk-filter.c: (pipe_to_sa_full), (em_junk_sa_check_junk), diff --git a/plugins/sa-junk-plugin/em-junk-filter.c b/plugins/sa-junk-plugin/em-junk-filter.c index e60a505bd5..0cf5ff6caa 100644 --- a/plugins/sa-junk-plugin/em-junk-filter.c +++ b/plugins/sa-junk-plugin/em-junk-filter.c @@ -143,6 +143,8 @@ pipe_to_sa_full (CamelMimeMessage *msg, const char *in, char **argv, int rv_err, } if (output_buffer && pipe (out_fds) == -1) { + close (fds [0]); + close (fds [1]); errnosav = errno; d(printf ("failed to create a pipe (for use with spamassassin: %s\n", strerror (errno))); errno = errnosav; @@ -176,6 +178,10 @@ pipe_to_sa_full (CamelMimeMessage *msg, const char *in, char **argv, int rv_err, errnosav = errno; close (fds[0]); close (fds[1]); + if (output_buffer) { + close (out_fds [0]); + close (out_fds [1]); + } errno = errnosav; return rv_err; } |