summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1996-11-29 13:12:14 +0000
committerbde <bde@FreeBSD.org>1996-11-29 13:12:14 +0000
commitfee89092b7398255f67e6b1bf2ee5ebe3e168db5 (patch)
tree1990f954049e348f2c02e431adf5a27019138a9e
parentcd93045dc4051c70e1a2b19a4214040853d3f353 (diff)
downloadFreeBSD-src-fee89092b7398255f67e6b1bf2ee5ebe3e168db5.zip
FreeBSD-src-fee89092b7398255f67e6b1bf2ee5ebe3e168db5.tar.gz
Don't clobber the SIGCONT bit in the signal mask in sigreturn(). Use
the `sigcantmask' macro to get the correct set of unmaskable signals. Found by: NIST-PCTS.
-rw-r--r--sys/amd64/amd64/machdep.c5
-rw-r--r--sys/i386/i386/machdep.c5
2 files changed, 4 insertions, 6 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 0746c66..8fef9e8 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.211 1996/11/11 20:38:52 bde Exp $
+ * $Id: machdep.c,v 1.212 1996/11/17 02:11:01 dyson Exp $
*/
#include "npx.h"
@@ -658,8 +658,7 @@ sigreturn(p, uap, retval)
p->p_sigacts->ps_sigstk.ss_flags |= SS_ONSTACK;
else
p->p_sigacts->ps_sigstk.ss_flags &= ~SS_ONSTACK;
- p->p_sigmask = scp->sc_mask &~
- (sigmask(SIGKILL)|sigmask(SIGCONT)|sigmask(SIGSTOP));
+ p->p_sigmask = scp->sc_mask & ~sigcantmask;
regs[tEBP] = scp->sc_fp;
regs[tESP] = scp->sc_sp;
regs[tEIP] = scp->sc_pc;
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index 0746c66..8fef9e8 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $Id: machdep.c,v 1.211 1996/11/11 20:38:52 bde Exp $
+ * $Id: machdep.c,v 1.212 1996/11/17 02:11:01 dyson Exp $
*/
#include "npx.h"
@@ -658,8 +658,7 @@ sigreturn(p, uap, retval)
p->p_sigacts->ps_sigstk.ss_flags |= SS_ONSTACK;
else
p->p_sigacts->ps_sigstk.ss_flags &= ~SS_ONSTACK;
- p->p_sigmask = scp->sc_mask &~
- (sigmask(SIGKILL)|sigmask(SIGCONT)|sigmask(SIGSTOP));
+ p->p_sigmask = scp->sc_mask & ~sigcantmask;
regs[tEBP] = scp->sc_fp;
regs[tESP] = scp->sc_sp;
regs[tEIP] = scp->sc_pc;
OpenPOWER on IntegriCloud