From 2f239512210d12cdcd23faba7efa409f411c9909 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Mon, 12 Dec 2005 13:11:22 +0000 Subject: [PATCH] SIGSTOP can't be masked (report by Jaap Weel). --- servers/pm/signal.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/servers/pm/signal.c b/servers/pm/signal.c index dee78d546..6765d4735 100644 --- a/servers/pm/signal.c +++ b/servers/pm/signal.c @@ -113,6 +113,8 @@ PUBLIC int do_sigprocmask() * * The library interface must set SIG_INQUIRE if the 'act' argument * is NULL. + * + * KILL and STOP can't be masked. */ int i; @@ -122,6 +124,7 @@ PUBLIC int do_sigprocmask() switch (m_in.sig_how) { case SIG_BLOCK: sigdelset((sigset_t *)&m_in.sig_set, SIGKILL); + sigdelset((sigset_t *)&m_in.sig_set, SIGSTOP); for (i = 1; i <= _NSIG; i++) { if (sigismember((sigset_t *)&m_in.sig_set, i)) sigaddset(&mp->mp_sigmask, i); @@ -138,6 +141,7 @@ PUBLIC int do_sigprocmask() case SIG_SETMASK: sigdelset((sigset_t *) &m_in.sig_set, SIGKILL); + sigdelset((sigset_t *) &m_in.sig_set, SIGSTOP); mp->mp_sigmask = (sigset_t) m_in.sig_set; check_pending(mp); break; -- 2.44.0