gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r11904 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r11904 - gnunet/src/util
Date: Wed, 23 Jun 2010 16:22:54 +0200

Author: grothoff
Date: 2010-06-23 16:22:54 +0200 (Wed, 23 Jun 2010)
New Revision: 11904

Modified:
   gnunet/src/util/disk.c
Log:
close pipes on exec

Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c      2010-06-23 13:58:16 UTC (rev 11903)
+++ gnunet/src/util/disk.c      2010-06-23 14:22:54 UTC (rev 11904)
@@ -1663,27 +1663,28 @@
     }
   p->fd[0]->fd = fd[0];
   p->fd[1]->fd = fd[1];
+  ret = 0;
+  flags = fcntl (fd[0], F_GETFL);
+  flags |= FD_CLOEXEC;
   if (!blocking)
+    flags |= O_NONBLOCK;
+  if (0 > fcntl (fd[0], F_SETFL, flags))
+    ret = -1;
+  flags = fcntl (fd[1], F_GETFL);
+  flags |= FD_CLOEXEC;
+  if (!blocking)
+    flags |= O_NONBLOCK;
+  if (0 > fcntl (fd[1], F_SETFL, flags))
+    ret = -1;
+  if (ret == -1)
     {
-      flags = fcntl (fd[0], F_GETFL);
-      flags |= O_NONBLOCK;
-      ret = fcntl (fd[0], F_SETFL, flags);
-      if (ret != -1)
-        {
-          flags = fcntl (fd[1], F_GETFL);
-          flags |= O_NONBLOCK;
-          ret = fcntl (fd[1], F_SETFL, flags);
-        }
-      if (ret == -1)
-        {
-          eno = errno;
-          GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "fcntl");
-          GNUNET_break (0 == close (p->fd[0]->fd));
-          GNUNET_break (0 == close (p->fd[1]->fd));
-          GNUNET_free (p);
-          errno = eno;
-          return NULL;
-        }
+      eno = errno;
+      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "fcntl");
+      GNUNET_break (0 == close (p->fd[0]->fd));
+      GNUNET_break (0 == close (p->fd[1]->fd));
+      GNUNET_free (p);
+      errno = eno;
+      return NULL;    
     }
 #else
   BOOL ret;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]