Avoid erroneous syscalls
* process.c (create_process): Avoid using invalid file descriptors. * callproc.c (child_setup): Avoid closing a file descriptor twice.
This commit is contained in:
parent
2b7e356a10
commit
ce8f5a9a47
3 changed files with 16 additions and 5 deletions
|
|
@ -1,3 +1,9 @@
|
|||
2010-06-30 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* process.c (create_process): Avoid using invalid file descriptors.
|
||||
|
||||
* callproc.c (child_setup): Avoid closing a file descriptor twice.
|
||||
|
||||
2010-06-30 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
||||
|
|
|
|||
|
|
@ -2038,7 +2038,7 @@ create_process (process, new_argv, current_dir)
|
|||
process_set_signal to fail on SGI when using a pipe. */
|
||||
setsid ();
|
||||
/* Make the pty's terminal the controlling terminal. */
|
||||
if (pty_flag)
|
||||
if (pty_flag && xforkin >= 0)
|
||||
{
|
||||
#ifdef TIOCSCTTY
|
||||
/* We ignore the return value
|
||||
|
|
@ -2081,8 +2081,11 @@ create_process (process, new_argv, current_dir)
|
|||
/* I wonder: would just ioctl (0, TIOCNOTTY, 0) work here?
|
||||
I can't test it since I don't have 4.3. */
|
||||
int j = emacs_open ("/dev/tty", O_RDWR, 0);
|
||||
ioctl (j, TIOCNOTTY, 0);
|
||||
emacs_close (j);
|
||||
if (j >= 0)
|
||||
{
|
||||
ioctl (j, TIOCNOTTY, 0);
|
||||
emacs_close (j);
|
||||
}
|
||||
#ifndef USG
|
||||
/* In order to get a controlling terminal on some versions
|
||||
of BSD, it is necessary to put the process in pgrp 0
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue