aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2010-02-17 10:21:00 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2010-02-17 10:21:00 +0000
commit9814250d3008861ee17c445823c09ed3eed8778a (patch)
tree1d4f289b6e969b8d6410606d1d08d8d7bb004c09
parenta759723f3ba3e3126dabe3c57c23701f097fbf79 (diff)
downloadsrc-9814250d3008861ee17c445823c09ed3eed8778a.tar.gz
src-9814250d3008861ee17c445823c09ed3eed8778a.zip
MFC r203875:
Do not leak process lock when current thread is not allowed to see target. Approved by: re (bz)
Notes
Notes: svn path=/releng/7.3/; revision=203997
-rw-r--r--sys/kern/kern_event.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index c45abcaf9957..3fda217d91b5 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -323,8 +323,10 @@ filt_procattach(struct knote *kn)
if (p == NULL)
return (ESRCH);
- if ((error = p_cansee(curthread, p)))
+ if ((error = p_cansee(curthread, p))) {
+ PROC_UNLOCK(p);
return (error);
+ }
kn->kn_ptr.p_proc = p;
kn->kn_flags |= EV_CLEAR; /* automatically set */