Module Name: src
Committed By: christos
Date: Sun Mar 27 16:26:26 UTC 2022
Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c
Log Message:
add a kauth vnode check for adding links
To generate a diff of this commit:
cvs rdiff -u -r1.77 -r1.78 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.77 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.78
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.77 Wed Dec 22 09:04:10 2021
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Sun Mar 27 12:26:26 2022
@@ -5794,10 +5794,19 @@ zfs_netbsd_link(void *v)
nm = PNBUF_GET();
(void)strlcpy(nm, cnp->cn_nameptr, cnp->cn_namelen + 1);
- vn_lock(vp, LK_EXCLUSIVE);
+ if ((error = vn_lock(vp, LK_EXCLUSIVE)) != 0) {
+ /* XXX: No ABORTOP? */
+ PNBUF_PUT(nm);
+ return error;
+ }
+ error = kauth_authorize_vnode(cnp->cn_cred, KAUTH_VNODE_ADD_LINK, vp,
+ dvp, 0);
+ if (error)
+ goto out;
error = zfs_link(dvp, vp, nm, cnp->cn_cred,
NULL, 0);
+out:
PNBUF_PUT(nm);
VOP_UNLOCK(vp, 0);
return error;