diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2021-09-30 10:50:18 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2021-10-11 09:13:29 +0000 |
commit | cda5e344e2511a8c4119cdfcd3953807ba54bdee (patch) | |
tree | 038dad313ae6cd87053c6f6fd396797eff87d1f3 /sys/compat/linprocfs/linprocfs.c | |
parent | e6014341647f9a45dab9d09f57d475c50137e6b6 (diff) |
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)
Diffstat (limited to 'sys/compat/linprocfs/linprocfs.c')
-rw-r--r-- | sys/compat/linprocfs/linprocfs.c | 4 |
1 files 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); |