diff options
author | rwatson <rwatson@FreeBSD.org> | 2002-10-05 18:11:36 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2002-10-05 18:11:36 +0000 |
commit | abda58cc1e0c7e68a18c225136603919b193bb42 (patch) | |
tree | 657b99f4f96dbc69f5e119cca78e05b5b5a07a0e /sys/kern/vfs_syscalls.c | |
parent | d273cfe761df48abbf27913a38e7e22118d95efc (diff) | |
download | FreeBSD-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_syscalls.c')
-rw-r--r-- | sys/kern/vfs_syscalls.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 7c72a8c..4cba8b5 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.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); |