summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>1999-10-03 13:04:17 +0000
committermarcel <marcel@FreeBSD.org>1999-10-03 13:04:17 +0000
commit60831e2cbbbb346e79747693193016896f8d5907 (patch)
treeafa19cfd5b1a0e835e27c3b495f0ca9ac48ce09b /sys/amd64
parentba5e4c816c969c1a63a59bbe053b6ca9233f2263 (diff)
downloadFreeBSD-src-60831e2cbbbb346e79747693193016896f8d5907.zip
FreeBSD-src-60831e2cbbbb346e79747693193016896f8d5907.tar.gz
Reinstate the 4th argument to old signal handlers. Don't set it
when the handler uses siginfo_t.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/machdep.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 5c5fb8b..8b6bb84 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;
}
OpenPOWER on IntegriCloud