From ca456fbba33d00a12bcec06589a08a4e9a081afd Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 25 Apr 2019 20:29:54 +0100 Subject: 44284: Mark SIGQUIT as ignore if ignored on entry to shell. This prevents us from re-enabling it after a fork if it is being ignored. --- ChangeLog | 5 +++++ Src/init.c | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/ChangeLog b/ChangeLog index a5ac4f333..1bb443f6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2019-04-25 Peter Stephenson + + * 44248: Src/init.c: Mark SIGQUIT as ignored if ignored at + shell start, so we don't enable it after a fork. + 2019-04-25 Peter Stephenson * 44254: Src/compat.c: make quite sure we've reached "/" diff --git a/Src/init.c b/Src/init.c index e7e62e2f7..2d5c3296d 100644 --- a/Src/init.c +++ b/Src/init.c @@ -1234,6 +1234,15 @@ init_signals(void) intr(); +#ifdef POSIX_SIGNALS + { + struct sigaction act; + if (!sigaction(SIGQUIT, NULL, &act) && + act.sa_handler == SIG_IGN) + sigtrapped[SIGQUIT] = ZSIG_IGNORED; + } +#endif + #ifndef QDEBUG signal_ignore(SIGQUIT); #endif -- cgit 1.4.1