From 2c27d8dbdc8652bcbef4850460b480f04e76e0d8 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 1 Aug 1995 18:46:37 +0000 Subject: (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. --- job.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'job.c') diff --git a/job.c b/job.c index b62c2f5..7bb336c 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); -- cgit v1.2.3