summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorArchie Cobbs <archie@FreeBSD.org>2002-11-15 00:34:28 +0000
committerArchie Cobbs <archie@FreeBSD.org>2002-11-15 00:34:28 +0000
commite46cac58cd0cbc204924c3c9f228da301144fb93 (patch)
tree5257fa4ee9fba5465825a9d2080355f8a3253189 /lib
parentac244ef31f728c5da747573a19e7a2ba42eed622 (diff)
Notes
Diffstat (limited to 'lib')
-rw-r--r--lib/libc_r/uthread/uthread_execve.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libc_r/uthread/uthread_execve.c b/lib/libc_r/uthread/uthread_execve.c
index 612f9039a2ed..c0aa31c559cc 100644
--- a/lib/libc_r/uthread/uthread_execve.c
+++ b/lib/libc_r/uthread/uthread_execve.c
@@ -69,6 +69,10 @@ _execve(const char *name, char *const * argv, char *const * envp)
/* Check if this file descriptor is in use: */
if (_thread_fd_table[i] != NULL &&
(_thread_fd_getflags(i) & O_NONBLOCK) == 0) {
+ /* Skip if the close-on-exec flag is set */
+ flags = __sys_fcntl(i, F_GETFD, NULL);
+ if ((flags & FD_CLOEXEC) != 0)
+ continue; /* don't bother, no point */
/* Get the current flags: */
flags = __sys_fcntl(i, F_GETFL, NULL);
/* Clear the nonblocking file descriptor flag: */