summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2001-10-07 16:11:37 +0000
committeriedowse <iedowse@FreeBSD.org>2001-10-07 16:11:37 +0000
commitc0a87dce40181f158d17fdda9ee69070e167ecd9 (patch)
tree698cc0d2c84ff384bd5a1472f2b6ff0ca9837090
parent006ac093289731f5518504629edb3a02acb09377 (diff)
downloadFreeBSD-src-c0a87dce40181f158d17fdda9ee69070e167ecd9.zip
FreeBSD-src-c0a87dce40181f158d17fdda9ee69070e167ecd9.tar.gz
Fix a typo in do_sigaction() where sa_sigaction and sa_handler were
confused. Since sa_sigaction and sa_handler alias each other in a union, the bug was completely harmless. This had been fixed as part of the SIGCHLD changes in revision 1.125, but it was reverted when they were backed out in revision 1.126.
-rw-r--r--sys/kern/kern_sig.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index c1ed0ff..88a24fe 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -257,11 +257,11 @@ do_sigaction(p, sig, act, oact, old)
ps->ps_catchmask[_SIG_IDX(sig)] = act->sa_mask;
SIG_CANTMASK(ps->ps_catchmask[_SIG_IDX(sig)]);
if (act->sa_flags & SA_SIGINFO) {
- ps->ps_sigact[_SIG_IDX(sig)] = act->sa_handler;
- SIGADDSET(ps->ps_siginfo, sig);
- } else {
ps->ps_sigact[_SIG_IDX(sig)] =
(__sighandler_t *)act->sa_sigaction;
+ SIGADDSET(ps->ps_siginfo, sig);
+ } else {
+ ps->ps_sigact[_SIG_IDX(sig)] = act->sa_handler;
SIGDELSET(ps->ps_siginfo, sig);
}
if (!(act->sa_flags & SA_RESTART))
OpenPOWER on IntegriCloud