mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-02-03 21:52:24 +00:00
Colin Watson reports that gnome-session has been known to leave
SIGPIPE ignored in its child processes, leading to unexpected behaviour inside pterms. (The gnome-session I'm sitting in front of doesn't seem to do this as far as I can tell, but I don't doubt there are some that do.) Add SIGPIPE to the list of signals we reset to default behaviour before launching pterm's child process. [originally from svn r9117]
This commit is contained in:
parent
09080057ca
commit
d0b99ccee3
11
unix/uxpty.c
11
unix/uxpty.c
@ -826,14 +826,15 @@ static const char *pty_init(void *frontend, void **backend_handle, Config *cfg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SIGINT and SIGQUIT may have been set to ignored by our
|
* SIGINT, SIGQUIT and SIGPIPE may have been set to ignored by
|
||||||
* parent, particularly by things like sh -c 'pterm &' and
|
* our parent, particularly by things like sh -c 'pterm &' and
|
||||||
* some window managers. SIGCHLD, meanwhile, was blocked
|
* some window or session managers. SIGCHLD, meanwhile, was
|
||||||
* during pt_main() startup. Reverse all this for our child
|
* blocked during pt_main() startup. Reverse all this for our
|
||||||
* process.
|
* child process.
|
||||||
*/
|
*/
|
||||||
putty_signal(SIGINT, SIG_DFL);
|
putty_signal(SIGINT, SIG_DFL);
|
||||||
putty_signal(SIGQUIT, SIG_DFL);
|
putty_signal(SIGQUIT, SIG_DFL);
|
||||||
|
putty_signal(SIGPIPE, SIG_DFL);
|
||||||
block_signal(SIGCHLD, 0);
|
block_signal(SIGCHLD, 0);
|
||||||
if (pty_argv)
|
if (pty_argv)
|
||||||
execvp(pty_argv[0], pty_argv);
|
execvp(pty_argv[0], pty_argv);
|
||||||
|
Loading…
Reference in New Issue
Block a user