diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2005-08-06 12:10:29 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2005-08-06 12:10:29 +0000 |
commit | d1b0415a5f6e0687db6b4e0f32ffd6d3f1d0fb2e (patch) | |
tree | ef07ce1fc1682c7a82a608b8f858b132e3d0eb25 /sys/arch/hp300 | |
parent | b03d0711c9c1ef5378f8520681fc1c2d3ab5aa54 (diff) |
If a process has trashed its stack, use sigexit() instead of psignal() to
terminate it with prejudice, as done in native sendsig().
Plus you get a memory leak in COMPAT_HPUX on m68k fixed for free.
review art@ test martin@
Diffstat (limited to 'sys/arch/hp300')
-rw-r--r-- | sys/arch/hp300/hp300/hpux_machdep.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/arch/hp300/hp300/hpux_machdep.c b/sys/arch/hp300/hp300/hpux_machdep.c index 1dd18e990f9..33f74e1caab 100644 --- a/sys/arch/hp300/hp300/hpux_machdep.c +++ b/sys/arch/hp300/hp300/hpux_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hpux_machdep.c,v 1.18 2005/01/15 21:13:08 miod Exp $ */ +/* $OpenBSD: hpux_machdep.c,v 1.19 2005/08/06 12:10:28 miod Exp $ */ /* $NetBSD: hpux_machdep.c,v 1.19 1998/02/16 20:58:30 thorpej Exp $ */ /* @@ -36,7 +36,7 @@ */ /* - * Machinde-dependent bits for HP-UX binary compatibility. + * Machine-dependent bits for HP-UX binary compatibility. */ #include <sys/param.h> @@ -506,13 +506,9 @@ hpux_sendsig(catcher, sig, mask, code, type, val) * Process has trashed its stack; give it an illegal * instruction to halt it in its tracks. */ - SIGACTION(p, SIGILL) = SIG_DFL; - sig = sigmask(SIGILL); - p->p_sigignore &= ~sig; - p->p_sigcatch &= ~sig; - p->p_sigmask &= ~sig; - psignal(p, SIGILL); - return; + free((caddr_t)kfp, M_TEMP); + sigexit(p, SIGILL); + /* NOTREACHED */ } frame->f_regs[SP] = (int)fp; |