From 667e68fd2fbe1cbd8c3b65520a0b298c3adfd3ea Mon Sep 17 00:00:00 2001 From: jake Date: Thu, 29 Aug 2002 01:55:24 +0000 Subject: Removed support for in-kernel signal code. --- sys/sparc64/sparc64/machdep.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/sys/sparc64/sparc64/machdep.c b/sys/sparc64/sparc64/machdep.c index 196f067..a535b54 100644 --- a/sys/sparc64/sparc64/machdep.c +++ b/sys/sparc64/sparc64/machdep.c @@ -370,6 +370,17 @@ sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) CTR4(KTR_SIG, "sendsig: td=%p (%s) catcher=%p sig=%d", td, p->p_comm, catcher, sig); + /* Make sure we have a signal trampoline to return to. */ + if (p->p_md.md_sigtramp == NULL) { + /* + * No signal tramoline... kill the process. + */ + CTR0(KTR_SIG, "sendsig: no sigtramp"); + PROC_LOCK(p); + sigexit(td, sig); + /* NOTREACHED */ + } + /* Save user context. */ bzero(&sf, sizeof(sf)); sf.sf_uc.uc_sigmask = *mask; @@ -435,10 +446,7 @@ sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) /* NOTREACHED */ } - if (p->p_md.md_sigtramp != NULL) - tf->tf_tpc = (u_long)p->p_md.md_sigtramp; - else - tf->tf_tpc = PS_STRINGS - *(p->p_sysent->sv_szsigcode); + tf->tf_tpc = (u_long)p->p_md.md_sigtramp; tf->tf_tnpc = tf->tf_tpc + 4; tf->tf_sp = (u_long)fp - SPOFF; -- cgit v1.1