The branch stable/13 has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=704d2103c61363e46e9f4a61b1e61527e5bfe173

commit 704d2103c61363e46e9f4a61b1e61527e5bfe173
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2022-01-21 15:29:17 +0000
Commit:     Konstantin Belousov <[email protected]>
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

Reply via email to