diff options
author | marcel <marcel@FreeBSD.org> | 1999-10-03 13:04:17 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 1999-10-03 13:04:17 +0000 |
commit | 60831e2cbbbb346e79747693193016896f8d5907 (patch) | |
tree | afa19cfd5b1a0e835e27c3b495f0ca9ac48ce09b /sys/amd64 | |
parent | ba5e4c816c969c1a63a59bbe053b6ca9233f2263 (diff) | |
download | FreeBSD-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.c | 4 |
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; } |