git: cda5e344e251 - stable/13 - linprocfs: find cwd and root handling

From: Mateusz Guzik <mjg_at_FreeBSD.org>
Date: Mon, 11 Oct 2021 09:15:54 UTC
The branch stable/13 has been updated by mjg:

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

commit cda5e344e2511a8c4119cdfcd3953807ba54bdee
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2021-09-30 10:50:18 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2021-10-11 09:13:29 +0000

    linprocfs: find cwd and root handling
    
    The code would incorrectly use curthread instead of the target proc to
    resolve vnodes.
    
    Fixes:  8d03b99b9dafe928 ("fd: move vnodes out of filedesc into a dedicated structure")
    PR:     258729
    Noted by:        Damjan Jovanovic <damjan.jov@gmail.com>
    
    (cherry picked from commit 69ab52838655912cf89699e0b2d21d244d3b9b27)
---
 sys/compat/linprocfs/linprocfs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c
index 79ffc4dfd5aa..d29bcda47ec0 100644
--- a/sys/compat/linprocfs/linprocfs.c
+++ b/sys/compat/linprocfs/linprocfs.c
@@ -1169,7 +1169,7 @@ linprocfs_doproccwd(PFS_FILL_ARGS)
 	char *fullpath = "unknown";
 	char *freepath = NULL;
 
-	pwd = pwd_hold(td);
+	pwd = pwd_hold_proc(p);
 	vn_fullpath(pwd->pwd_cdir, &fullpath, &freepath);
 	sbuf_printf(sb, "%s", fullpath);
 	if (freepath)
@@ -1189,7 +1189,7 @@ linprocfs_doprocroot(PFS_FILL_ARGS)
 	char *fullpath = "unknown";
 	char *freepath = NULL;
 
-	pwd = pwd_hold(td);
+	pwd = pwd_hold_proc(p);
 	vp = jailed(p->p_ucred) ? pwd->pwd_jdir : pwd->pwd_rdir;
 	vn_fullpath(vp, &fullpath, &freepath);
 	sbuf_printf(sb, "%s", fullpath);