From 77237db2b599e0a14ea9899c9411219c35e00dba Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Sun, 3 Oct 1999 13:04:17 +0000 Subject: [PATCH] Reinstate the 4th argument to old signal handlers. Don't set it when the handler uses siginfo_t. --- sys/amd64/amd64/machdep.c | 4 ++-- sys/i386/i386/machdep.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 5c5fb8bef41..8b6bb842d77 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -533,11 +533,10 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) else { /* Old FreeBSD-style arguments. */ sf.sf_arg2 = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; } - sf.sf_addr = (char *) regs->tf_err; - /* save scratch registers */ sf.sf_siginfo.si_sc.sc_eax = regs->tf_eax; sf.sf_siginfo.si_sc.sc_ebx = regs->tf_ebx; @@ -687,6 +686,7 @@ sendsig(catcher, sig, mask, code) else { /* Old FreeBSD-style arguments. */ sf.sf_siginfo = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; } diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 5c5fb8bef41..8b6bb842d77 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -533,11 +533,10 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) else { /* Old FreeBSD-style arguments. */ sf.sf_arg2 = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; } - sf.sf_addr = (char *) regs->tf_err; - /* save scratch registers */ sf.sf_siginfo.si_sc.sc_eax = regs->tf_eax; sf.sf_siginfo.si_sc.sc_ebx = regs->tf_ebx; @@ -687,6 +686,7 @@ sendsig(catcher, sig, mask, code) else { /* Old FreeBSD-style arguments. */ sf.sf_siginfo = code; + sf.sf_addr = (char *)regs->tf_err; sf.sf_ahu.sf_handler = catcher; }