From: Roland McGrath Date: Tue, 1 Aug 1995 18:46:37 +0000 (+0000) Subject: (child_execute_job): Close STDIN_FD and STDOUT_FD after dup'ing from them. X-Git-Tag: 3.74.1~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c27d8dbdc8652bcbef4850460b480f04e76e0d8;p=thirdparty%2Fmake.git (child_execute_job): Close STDIN_FD and STDOUT_FD after dup'ing from them. Don't try to close all excess descriptors; getdtablesize might return a huge value. Any open descriptors in the parent should have FD_CLOEXEC set. --- diff --git a/job.c b/job.c index b62c2f55..7bb336c7 100644 --- a/job.c +++ b/job.c @@ -1068,14 +1068,10 @@ child_execute_job (stdin_fd, stdout_fd, argv, envp) (void) dup2 (stdin_fd, 0); if (stdout_fd != 1) (void) dup2 (stdout_fd, 1); - - /* Free up file descriptors. */ - { - register int d; - int max = getdtablesize (); - for (d = 3; d < max; ++d) - (void) close (d); - } + if (stdin_fd != 0) + (void) close (stdin_fd); + if (stdout_fd != 1) + (void) close (stdout_fd); /* Run the command. */ exec_command (argv, envp);