about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--libio/iopopen.c2
-rw-r--r--libio/oldiopopen.c2
3 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1b0f1be616..a29c08fff1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2000-04-12  Ulrich Drepper  <drepper@redhat.com>
 
+	* libio/iopopen.c (_IO_new_proc_open): Close pipes in case the
+	mode is invalid.
+	* libio/oldiopopen.c (_IO_old_proc_open): Likewise.
+	Patch by Bart Veer <bartv@redhat.com>.
+
 	* sysdeps/arm/dl-machine.h (RTLD_START): Rewrite for new init
 	function interface.
 
diff --git a/libio/iopopen.c b/libio/iopopen.c
index 9d472fa212..3edbba4bf7 100644
--- a/libio/iopopen.c
+++ b/libio/iopopen.c
@@ -135,6 +135,8 @@ _IO_new_proc_open (fp, command, mode)
     }
   else
     {
+      _IO_close (pipe_fds[0]);
+      _IO_close (pipe_fds[1]);
       __set_errno (EINVAL);
       return NULL;
     }
diff --git a/libio/oldiopopen.c b/libio/oldiopopen.c
index 815074f3bf..1e6f13358f 100644
--- a/libio/oldiopopen.c
+++ b/libio/oldiopopen.c
@@ -136,6 +136,8 @@ _IO_old_proc_open (fp, command, mode)
     }
   else
     {
+      _IO_close (pipe_fds[0]);
+      _IO_close (pipe_fds[1]);
       __set_errno (EINVAL);
       return NULL;
     }