| Summary: | typeo in kern_sig.c | ||
|---|---|---|---|
| Product: | Base System | Reporter: | yasu <yasu> |
| Component: | kern | Assignee: | Marcel Moolenaar <marcel> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 4.1-STABLE | ||
| Hardware: | Any | ||
| OS: | Any | ||
Responsible Changed From-To: freebsd-bugs->marcel Marcel made the change back in 1999. State Changed From-To: open->closed Fixed in kern_sig.c rev 1.97 and 1.72.2.4 |
kern_sig.c was fully rewritten due to new sigset_t types around Sep. 1999. (between rev 1.64 to 1.65) There seems suspicous typo in trapsignal(). - mask = sigmask(signum); - if ((p->p_flag & P_TRACED) == 0 && (p->p_sigcatch & mask) != 0 && - (p->p_sigmask & mask) == 0) { + if ((p->p_flag & P_TRACED) == 0 && SIGISMEMBER(p->p_sigcatch, sig) && + SIGISMEMBER(p->p_sigmask, sig)) { p->p_stats->p_ru.ru_nsignals++; I guess the last condition in if statement should be !SIGMEMBER(p->p_sigmask, sig) instead of SIGMEMBER(p->p_sigmask, sig) Fix: need a ! before the last SIGMEMBER()