summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_prot.c
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2005-03-18 13:33:18 +0000
committersobomax <sobomax@FreeBSD.org>2005-03-18 13:33:18 +0000
commit9f5986e4229b8e795da60586edc32d430a85f5fd (patch)
tree93d0e23936c3256f9d77165ce998289148c2352a /sys/kern/kern_prot.c
parente90a54cc903b2b05973239664199fe0c8fd34213 (diff)
downloadFreeBSD-src-9f5986e4229b8e795da60586edc32d430a85f5fd.zip
FreeBSD-src-9f5986e4229b8e795da60586edc32d430a85f5fd.tar.gz
Impose the upper limit on signals that are allowed between kernel threads
in set[ug]id program for compatibility with Linux. Linuxthreads uses 4 signals from SIGRTMIN to SIGRTMIN+3. Pointed out by: rwatson
Diffstat (limited to 'sys/kern/kern_prot.c')
-rw-r--r--sys/kern/kern_prot.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
index 174d87f..d867d53 100644
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -1532,8 +1532,8 @@ p_cansignal(struct thread *td, struct proc *p, int signum)
* pretty safe to do since the only way to create two processes
* with the same p_leader is via rfork(2).
*/
- if (signum >= SIGTHR && td->td_proc->p_leader != NULL &&
- td->td_proc->p_leader == p->p_leader)
+ if (td->td_proc->p_leader != NULL && signum >= SIGTHR &&
+ signum < SIGTHR + 4 && td->td_proc->p_leader == p->p_leader)
return (0);
return (cr_cansignal(td->td_ucred, p, signum));
OpenPOWER on IntegriCloud