X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Frun-program.c;h=367dd77bc497042a89c8ae77a3adeb714a9da753;hb=ed1910efb36f71b5ebe33b5ffffd7195e15644de;hp=4e6f829aa057cdd5641bc86223ac1880816d607d;hpb=7e0235c6f230d9e07a710a33479697f174f393fb;p=sbcl.git diff --git a/src/runtime/run-program.c b/src/runtime/run-program.c index 4e6f829..367dd77 100644 --- a/src/runtime/run-program.c +++ b/src/runtime/run-program.c @@ -25,7 +25,7 @@ #include #include #include - +#include #include #include #include @@ -138,6 +138,7 @@ int spawn(char *program, char *argv[], int sin, int sout, int serr, p += n; } } + close(channel[0]); if (child_errno) { waitpid(pid, NULL, 0); /* Our convention to tell Lisp that it was the exec that @@ -192,7 +193,9 @@ int spawn(char *program, char *argv[], int sin, int sout, int serr, if (fd != channel[1]) close(fd); #endif - environ = envp; + if (envp) { + environ = envp; + } /* Exec the program. */ if (search) execvp(program, argv);