diff options
author | Robert Watson <rwatson@FreeBSD.org> | 2001-04-12 21:32:02 +0000 |
---|---|---|
committer | Robert Watson <rwatson@FreeBSD.org> | 2001-04-12 21:32:02 +0000 |
commit | e386f9bda36084332c515c9a132cfc0572c6a668 (patch) | |
tree | d8a92d4957a136c716d9e27b84b955dcac31a861 /sys/kern/kern_event.c | |
parent | d34f8d3030e522f6f05d4dbe68c499eb59a24443 (diff) | |
download | src-e386f9bda36084332c515c9a132cfc0572c6a668.tar.gz src-e386f9bda36084332c515c9a132cfc0572c6a668.zip |
o Make kqueue's filt_procattach() function use the error value returned
by p_can(...P_CAN_SEE), rather than returning EACCES directly. This
brings the error code used here into line with similar arrangements
elsewhere, and prevents the leakage of pid usage information.
Reviewed by: jlemon
Obtained from: TrustedBSD Project
Notes
Notes:
svn path=/head/; revision=75451
Diffstat (limited to 'sys/kern/kern_event.c')
-rw-r--r-- | sys/kern/kern_event.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 14c162cca945..2cf1de9dfe05 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -165,12 +165,13 @@ static int filt_procattach(struct knote *kn) { struct proc *p; + int error; p = pfind(kn->kn_id); if (p == NULL) return (ESRCH); - if (p_can(curproc, p, P_CAN_SEE, NULL)) - return (EACCES); + if ((error = p_can(curproc, p, P_CAN_SEE, NULL))) + return (error); kn->kn_ptr.p_proc = p; kn->kn_flags |= EV_CLEAR; /* automatically set */ |