aboutsummaryrefslogtreecommitdiff
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;
}