aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2026-07-06 15:42:52 +0000
committerMark Johnston <markj@FreeBSD.org>2026-07-27 17:34:31 +0000
commitee4316c0c3575948bb6d8eb654b07932ba51736f (patch)
treeb2e3a1f5fd807d1da486b76d65ca1732c9f13f68
parent54dd524f0ba7d3c0d6b76ed00b0faf4d71803532 (diff)
vfs: Fix resource leaks in kern_symlinkat()
Fixes: 2ec2ba7e232d ("vfs: Add VFS/syscall support for Solaris style extended attributes") Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li, and Ke Xu from Tsinghua University using GLM-5.2 from Z.ai Reviewed by: rmacklem, kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58053 (cherry picked from commit 58c73727d6e49de1fc4f4bc90621146cae8db2bc)
-rw-r--r--sys/kern/vfs_syscalls.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index a6f513b719ba..c27671bcfc28 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -1882,7 +1882,7 @@ restart:
}
if ((vn_irflag_read(nd.ni_dvp) & VIRF_NAMEDDIR) != 0) {
error = EINVAL;
- goto out;
+ goto out2;
}
VATTR_NULL(&vattr);
vattr.va_mode = ACCESSPERMS &~ td->td_proc->p_pd->pd_cmask;
@@ -1894,9 +1894,7 @@ restart:
goto out2;
#endif
error = VOP_SYMLINK(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr, syspath);
-#ifdef MAC
out2:
-#endif
VOP_VPUT_PAIR(nd.ni_dvp, error == 0 ? &nd.ni_vp : NULL, true);
vn_finished_write(mp);
NDFREE_PNBUF(&nd);