diff options
Diffstat (limited to 'sys/kern/kern_sig.c')
| -rw-r--r-- | sys/kern/kern_sig.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 76ebe1cc68d..757507fedd3 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_sig.c,v 1.257 2020/06/14 07:22:55 visa Exp $ */ +/* $OpenBSD: kern_sig.c,v 1.258 2020/06/15 13:18:33 visa Exp $ */ /* $NetBSD: kern_sig.c,v 1.54 1996/04/22 01:38:32 christos Exp $ */ /* @@ -1803,6 +1803,7 @@ int filt_sigattach(struct knote *kn) { struct process *pr = curproc->p_p; + int s; if (kn->kn_id >= NSIG) return EINVAL; @@ -1810,7 +1811,9 @@ filt_sigattach(struct knote *kn) kn->kn_ptr.p_process = pr; kn->kn_flags |= EV_CLEAR; /* automatically set */ + s = splhigh(); klist_insert(&pr->ps_klist, kn); + splx(s); return (0); } @@ -1819,8 +1822,11 @@ void filt_sigdetach(struct knote *kn) { struct process *pr = kn->kn_ptr.p_process; + int s; + s = splhigh(); klist_remove(&pr->ps_klist, kn); + splx(s); } /* |
