From c4d980042effc629e4caa36abe551874e5ef8226 Mon Sep 17 00:00:00 2001 From: Jules Colding Date: Fri, 11 May 2007 11:55:57 +0000 Subject: Fix file descriptor leaks (#437664) svn path=/trunk/; revision=33512 --- mail/ChangeLog | 4 ++++ mail/mail-config.c | 2 ++ plugins/sa-junk-plugin/ChangeLog | 5 +++++ plugins/sa-junk-plugin/em-junk-filter.c | 6 ++++++ 4 files changed, 17 insertions(+) diff --git a/mail/ChangeLog b/mail/ChangeLog index 6b3e94ab85..23699ceaa5 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,7 @@ +2007-05-11 Jules Colding + + * mail-config.c (mail_config_signature_run_script): file descriptor leaks fixed + 2007-05-11 Srinivasa Ragavan * GNOME_Evolution_Mail.server.in.in: Add Tango icons to preference diff --git a/mail/mail-config.c b/mail/mail-config.c index 60625d649f..a79b247196 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -1101,6 +1101,8 @@ mail_config_signature_run_script (const char *script) g_warning ("Could not execute %s: %s\n", script, g_strerror (errno)); _exit (255); } else if (pid < 0) { + close (in_fds [0]); + close (in_fds [1]); g_warning ("Failed to create create child process '%s': %s", script, g_strerror (errno)); return NULL; } else { 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 + + * em-junk-filter.c (pipe_to_sa_full): File descriptor leaks fixed. + Fixes bug #437664. + 2007-05-11 Gilles Dartiguelongue * 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; } -- cgit v1.2.3