git: 2e259c209f69 - main - kern_pdwait(): print the process pointer through pd

Konstantin Belousov <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src
Message-ID <6a690736.460e2.28a1b3b7__35197.855653108$1785268065$gmane$org@gitrepo.freebsd.org>
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=2e259c209f6912bc99e18bbfb55dd10554b3b11d

commit 2e259c209f6912bc99e18bbfb55dd10554b3b11d
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2026-07-27 23:37:44 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2026-07-28 19:45:52 +0000

    kern_pdwait(): print the process pointer through pd
    
    to avoid using uninitialized value in the KASSERT() statement on the first
    iteration.
    
    Also, do the assert under the proctree_lock, which is not critical but
    satisfies the invariants.
    
    Noted and reviewed by:  markj
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D58505
---
 sys/kern/kern_exit.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index c43bd69554e7..ebe4aa40c128 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -1572,12 +1572,12 @@ kern_pdwait(struct thread *td, int fd, int *status,
 		goto exit_unlocked;
 
 	for (;;) {
+		sx_xlock(&proctree_lock);
 		/* We own a reference on the procdesc file. */
 		KASSERT(pd->pd_fpcount > 0,
 		    ("closed proc %p procdesc %p pd flags %#x",
-		    p, pd, pd->pd_flags));
+		    pd->pd_proc, pd, pd->pd_flags));
 
-		sx_xlock(&proctree_lock);
 		p = pd->pd_proc;
 		if (p == NULL) {
 			error = ESRCH;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.