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