gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r13313 - gnunet/src/util
Date: Wed, 20 Oct 2010 15:12:00 +0200

Author: grothoff
Date: 2010-10-20 15:12:00 +0200 (Wed, 20 Oct 2010)
New Revision: 13313

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

Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c      2010-10-20 13:05:34 UTC (rev 13312)
+++ gnunet/src/util/disk.c      2010-10-20 13:12:00 UTC (rev 13313)
@@ -1642,6 +1642,7 @@
 #endif
 }
 
+
 /**
  * Creates an interprocess channel
  *
@@ -1672,24 +1673,34 @@
   ret = pipe (fd);
   if (ret == -1)
     {
+      eno = errno;
+      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "pipe");
       GNUNET_free (p);
+      errno = eno;
       return NULL;
     }
   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[0], F_GETFD);
+  flags |= FD_CLOEXEC;
+  if (0 > fcntl (fd[0], F_SETFD, 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;
+  flags = fcntl (fd[1], F_GETFD);
+  flags |= FD_CLOEXEC;
+  if (0 > fcntl (fd[1], F_SETFD, flags))
+    ret = -1;
   if (ret == -1)
     {
       eno = errno;




reply via email to

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