diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2010-05-09 17:37:34 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2010-05-09 17:37:34 +0000 |
commit | e13399b6a644a4b3dc247be1255c30f6adb1d7de (patch) | |
tree | 9c680e50b981abc565c8b7c28b2af0eb0e0d14da /sys/arch | |
parent | c66c771560a1325641de98c3c58bbcf0ec513a0f (diff) |
Prevent "taken branch" exceptions from kernel space by clearing the PSL_T
bit before we enter a signal handler.
"if you say so" miod@, "seems to make sense" jsing@
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/hppa/hppa/machdep.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/hppa/hppa/machdep.c b/sys/arch/hppa/hppa/machdep.c index 88709266eed..1cd969bff6f 100644 --- a/sys/arch/hppa/hppa/machdep.c +++ b/sys/arch/hppa/hppa/machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: machdep.c,v 1.183 2010/05/02 22:59:11 kettenis Exp $ */ +/* $OpenBSD: machdep.c,v 1.184 2010/05/09 17:37:33 kettenis Exp $ */ /* * Copyright (c) 1999-2003 Michael Shalayeff @@ -1326,7 +1326,7 @@ sendsig(catcher, sig, mask, code, type, val) tf->tf_arg2 = tf->tf_r4 = scp; tf->tf_arg3 = (register_t)catcher; tf->tf_sp = scp + sss; - tf->tf_ipsw &= ~(PSL_N|PSL_B); + tf->tf_ipsw &= ~(PSL_N|PSL_B|PSL_T); tf->tf_iioq_head = HPPA_PC_PRIV_USER | p->p_sigcode; tf->tf_iioq_tail = tf->tf_iioq_head + 4; tf->tf_iisq_tail = tf->tf_iisq_head = pcb->pcb_space; |