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;