git: 704d2103c613 - stable/13 - p_candebug(), p_cansee(): always allow for curproc
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 29 Jan 2022 01:11:13 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=704d2103c61363e46e9f4a61b1e61527e5bfe173 commit 704d2103c61363e46e9f4a61b1e61527e5bfe173 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2022-01-21 15:29:17 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2022-01-29 01:10:44 +0000 p_candebug(), p_cansee(): always allow for curproc (cherry picked from commit 55a0aa21628ad7b3bd8d6a42e51d79867d8996a9) --- sys/kern/kern_prot.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index 08fc3c8062db..484ebed95118 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -1460,10 +1460,12 @@ cr_cansee(struct ucred *u1, struct ucred *u2) int p_cansee(struct thread *td, struct proc *p) { - /* Wrap cr_cansee() for all functionality. */ KASSERT(td == curthread, ("%s: td not curthread", __func__)); PROC_LOCK_ASSERT(p, MA_OWNED); + + if (td->td_proc == p) + return (0); return (cr_cansee(td->td_ucred, p->p_ucred)); } @@ -1681,10 +1683,10 @@ p_candebug(struct thread *td, struct proc *p) KASSERT(td == curthread, ("%s: td not curthread", __func__)); PROC_LOCK_ASSERT(p, MA_OWNED); - if ((error = priv_check(td, PRIV_DEBUG_UNPRIV))) - return (error); if (td->td_proc == p) return (0); + if ((error = priv_check(td, PRIV_DEBUG_UNPRIV))) + return (error); if ((error = prison_check(td->td_ucred, p->p_ucred))) return (error); #ifdef MAC