summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_extattr.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2002-10-05 18:11:36 +0000
committerrwatson <rwatson@FreeBSD.org>2002-10-05 18:11:36 +0000
commitabda58cc1e0c7e68a18c225136603919b193bb42 (patch)
tree657b99f4f96dbc69f5e119cca78e05b5b5a07a0e /sys/kern/vfs_extattr.c
parentd273cfe761df48abbf27913a38e7e22118d95efc (diff)
downloadFreeBSD-src-abda58cc1e0c7e68a18c225136603919b193bb42.zip
FreeBSD-src-abda58cc1e0c7e68a18c225136603919b193bb42.tar.gz
Merge support for mac_check_vnode_link(), a MAC framework/policy entry
point that instruments the creation of hard links. Policy implementations to follow. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
Diffstat (limited to 'sys/kern/vfs_extattr.c')
-rw-r--r--sys/kern/vfs_extattr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index 7c72a8c..4cba8b5 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -1031,7 +1031,12 @@ kern_link(struct thread *td, char *path, char *link, enum uio_seg segflg)
== 0) {
VOP_LEASE(nd.ni_dvp, td, td->td_ucred, LEASE_WRITE);
VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE);
- error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd);
+#ifdef MAC
+ error = mac_check_vnode_link(td->td_ucred, nd.ni_dvp,
+ vp, &nd.ni_cnd);
+ if (error == 0)
+#endif
+ error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd);
VOP_UNLOCK(vp, 0, td);
}
NDFREE(&nd, NDF_ONLY_PNBUF);
OpenPOWER on IntegriCloud