diff --git a/src/common/remoteio.c b/src/common/remoteio.c --- a/src/common/remoteio.c +++ b/src/common/remoteio.c @@ -24,6 +24,7 @@ #include #include #include +#include int remoteio_open(const char *spec, struct remoteio **rem) { @@ -59,6 +60,10 @@ int remoteio_open(const char *spec, stru } if(child) { + /* close sides of pipe we won't use */ + close(pipe_write[0]); + close(pipe_read[1]); + /* setup remoteio struct */ (*rem) = malloc(sizeof(struct remoteio)); if(!(*rem)) @@ -82,6 +87,11 @@ int remoteio_open(const char *spec, stru /* child */ else { + /* close unused pipes */ + close(pipe_write[1]); + close(pipe_read[0]); + + /* reset stdin, stdout, and stderr to the appropriate streams. OK, not stderr :-) */ return 1; /* this line should never be reached because we exec*/