(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.
This commit is contained in:
Roland McGrath 1995-08-01 18:46:37 +00:00
parent d02b26a4b8
commit 2c27d8dbdc

12
job.c
View file

@ -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);