summaryrefslogtreecommitdiff
path: root/src/callproc.c
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2010-07-01 01:07:11 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2010-07-01 01:07:11 +0200
commitdd63dd044980ffb9f4e0c09f0fe44649df639876 (patch)
tree3dd3f65c39100f85187a5edd4d3e5ec0072223c4 /src/callproc.c
parent0357e7c019c7a4cfa0b868bf749b1a948d7be388 (diff)
downloademacs-dd63dd044980ffb9f4e0c09f0fe44649df639876.tar.gz
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.c6
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 */