diff options
| author | David Xu <davidxu@FreeBSD.org> | 2003-07-11 13:42:23 +0000 |
|---|---|---|
| committer | David Xu <davidxu@FreeBSD.org> | 2003-07-11 13:42:23 +0000 |
| commit | ffb2e92a98fb1482e876fcd4571baaf1b7c53378 (patch) | |
| tree | 1a4ce866dcf4a6d2de1624beb16a65a4fc5fc8c7 /sys | |
| parent | fe2680eaa0a9b713af3c598d7d4721686f25b02b (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/kern/kern_sig.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 099a7d0c64589..0e4c5b5823dec 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -1553,10 +1553,11 @@ sigtd(struct proc *p, int sig, int prop) /* * If we know the signal is bound for a specific thread then we * assume that we are in that threads context. This is the case - * for SIGXCPU, SIGILL, etc. Otherwise someone did a kill() from - * userland and the real thread doesn't actually matter. + * for SIGXCPU, SIGILL, etc. Otherwise someone did a kill() from + * userland, if current thread can handle the signal, it should + * get the signal. */ - if ((prop & SA_PROC) != 0 && curthread->td_proc == p) + if (curthread->td_proc == p && !SIGISMEMBER(curthread->td_sigmask, sig)) return (curthread); /* |
