summaryrefslogtreecommitdiffstats
path: root/sys/fs/devfs/devfs_vnops.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2002-10-05 18:40:10 +0000
committerrwatson <rwatson@FreeBSD.org>2002-10-05 18:40:10 +0000
commit7b150b70c23f2e2e32cfee0646005b13ef1a75be (patch)
tree6ab685df96169b084c81758fa864ba83a468cb49 /sys/fs/devfs/devfs_vnops.c
parent5846242df8bb35367b2f07511b465656800fa74a (diff)
downloadFreeBSD-src-7b150b70c23f2e2e32cfee0646005b13ef1a75be.zip
FreeBSD-src-7b150b70c23f2e2e32cfee0646005b13ef1a75be.tar.gz
Integrate a devfs/MAC fix from the MAC tree: avoid a race condition during
devfs VOP symlink creation by introducing a new entry point to determine the label of the devfs_dirent prior to allocation of a vnode for the symlink. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
Diffstat (limited to 'sys/fs/devfs/devfs_vnops.c')
-rw-r--r--sys/fs/devfs/devfs_vnops.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c
index da09f0d..5f7775c 100644
--- a/sys/fs/devfs/devfs_vnops.c
+++ b/sys/fs/devfs/devfs_vnops.c
@@ -868,12 +868,11 @@ devfs_symlink(ap)
MALLOC(de->de_symlink, char *, i, M_DEVFS, M_WAITOK);
bcopy(ap->a_target, de->de_symlink, i);
lockmgr(&dmp->dm_lock, LK_EXCLUSIVE, 0, curthread);
+#ifdef MAC
+ mac_create_devfs_symlink(ap->a_cnp->cn_cred, dd, de);
+#endif
TAILQ_INSERT_TAIL(&dd->de_dlist, de, de_list);
devfs_allocv(de, ap->a_dvp->v_mount, ap->a_vpp, 0);
-#ifdef MAC
- mac_create_vnode(ap->a_cnp->cn_cred, ap->a_dvp, *ap->a_vpp);
- mac_update_devfsdirent(de, *ap->a_vpp);
-#endif /* MAC */
lockmgr(&dmp->dm_lock, LK_RELEASE, 0, curthread);
return (0);
}
OpenPOWER on IntegriCloud