From: Ulrich Drepper Date: Tue, 22 Jun 1999 10:08:44 +0000 (+0000) Subject: (_IO_old_proc_open): Apply change from 1999-03-29 to iopopen also here. X-Git-Tag: cvs/glibc_2-1-2~370 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4cf70ccf5846cc2bb651995bcd876b4e2dc24f9c;p=thirdparty%2Fglibc.git (_IO_old_proc_open): Apply change from 1999-03-29 to iopopen also here. --- diff --git a/libio/oldiopopen.c b/libio/oldiopopen.c index c4116baae37..556a9ff86f4 100644 --- a/libio/oldiopopen.c +++ b/libio/oldiopopen.c @@ -140,6 +140,8 @@ _IO_old_proc_open (fp, command, mode) if (child_pid == 0) { int child_std_end = mode[0] == 'r' ? 1 : 0; + struct _IO_proc_file *p; + _IO_close (parent_end); if (child_end != child_std_end) { @@ -149,11 +151,8 @@ _IO_old_proc_open (fp, command, mode) /* POSIX.2: "popen() shall ensure that any streams from previous popen() calls that remain open in the parent process are closed in the new child process." */ - while (old_proc_file_chain) - { - _IO_close (_IO_fileno ((_IO_FILE *) old_proc_file_chain)); - old_proc_file_chain = old_proc_file_chain->next; - } + for (p = old_proc_file_chain; p; p = p->next) + _IO_close (_IO_fileno ((_IO_FILE *) p)); _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); _IO__exit (127);