aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-config.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2003-12-02 06:47:07 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2003-12-02 06:47:07 +0800
commit7a7855e2879922b371597b25c27fd97d79dd165a (patch)
tree4774a7838009b7ae915f6c6333ea575b66efa15b /mail/mail-config.c
parent34ff1d48c04bd106e28477124769ca37727fe194 (diff)
downloadgsoc2013-evolution-7a7855e2879922b371597b25c27fd97d79dd165a.tar
gsoc2013-evolution-7a7855e2879922b371597b25c27fd97d79dd165a.tar.gz
gsoc2013-evolution-7a7855e2879922b371597b25c27fd97d79dd165a.tar.bz2
gsoc2013-evolution-7a7855e2879922b371597b25c27fd97d79dd165a.tar.lz
gsoc2013-evolution-7a7855e2879922b371597b25c27fd97d79dd165a.tar.xz
gsoc2013-evolution-7a7855e2879922b371597b25c27fd97d79dd165a.tar.zst
gsoc2013-evolution-7a7855e2879922b371597b25c27fd97d79dd165a.zip
Use fcntl() to set FD_CLOEXEC on each fd rather than close()ing it.
2003-12-01 Jeffrey Stedfast <fejj@ximian.com> * mail-config.c (mail_config_signature_run_script): Use fcntl() to set FD_CLOEXEC on each fd rather than close()ing it. Apparently Linux's older pthread implementations use sockets and so this fouls threading up. GO LINUX! GO! svn path=/trunk/; revision=23548
Diffstat (limited to 'mail/mail-config.c')
-rw-r--r--mail/mail-config.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/mail/mail-config.c b/mail/mail-config.c
index dfb9be8f1f..4e64adbe06 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -1430,14 +1430,11 @@ mail_config_signature_run_script (gchar *script)
setsid ();
maxfd = sysconf (_SC_OPEN_MAX);
- if (maxfd > 0) {
- for (i = 0; i < maxfd; i++) {
- if (i != STDIN_FILENO && i != STDOUT_FILENO && i != STDERR_FILENO)
- close (i);
- }
+ for (i = 3; i < maxfd; i++) {
+ if (i != STDIN_FILENO && i != STDOUT_FILENO && i != STDERR_FILENO)
+ fcntl (i, F_SETFD, FD_CLOEXEC);
}
-
execlp (script, script, NULL);
g_warning ("Could not execute %s: %s\n", script, g_strerror (errno));
_exit (255);