diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2010-07-01 01:07:11 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2010-07-01 01:07:11 +0200 |
commit | ce8f5a9a47d15ff76f33648d2b016fe819d2493f (patch) | |
tree | 4197b4dc3e93e50648407e32a113878f0d4105e9 /src/callproc.c | |
parent | 2b7e356a10591abd4d69b1bd5fad0f3746c9ab79 (diff) | |
download | emacs-ce8f5a9a47d15ff76f33648d2b016fe819d2493f.tar.gz emacs-ce8f5a9a47d15ff76f33648d2b016fe819d2493f.tar.bz2 emacs-ce8f5a9a47d15ff76f33648d2b016fe819d2493f.zip |
Avoid erroneous syscalls
* process.c (create_process): Avoid using invalid file descriptors.
* callproc.c (child_setup): Avoid closing a file descriptor twice.
Diffstat (limited to 'src/callproc.c')
-rw-r--r-- | src/callproc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/callproc.c b/src/callproc.c index 82a5ebb90da..cd06ad5c2e8 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1244,8 +1244,10 @@ child_setup (in, out, err, new_argv, set_pgrp, current_dir) dup2 (out, 1); dup2 (err, 2); emacs_close (in); - emacs_close (out); - emacs_close (err); + if (out != in) + emacs_close (out); + if (err != in && err != out) + emacs_close (err); #endif /* not MSDOS */ #endif /* not WINDOWSNT */ |