[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r11904 - gnunet/src/util,
gnunet <=