summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/fs/tmpfs/tmp_vnops.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
index 82195e6742..a8eadfa6db 100644
--- a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
+++ b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
@@ -1103,10 +1103,8 @@ tmp_remove(
rw_enter(&parent->tn_rwlock, RW_WRITER);
rw_enter(&tp->tn_rwlock, RW_WRITER);
- if (tp->tn_type != VDIR ||
- (error = secpolicy_fs_linkdir(cred, dvp->v_vfsp)) == 0)
- error = tdirdelete(parent, tp, nm, tp->tn_type == VDIR ?
- DR_RMDIR : DR_REMOVE, cred);
+ error = (tp->tn_type == VDIR) ? EPERM :
+ tdirdelete(parent, tp, nm, DR_REMOVE, cred);
rw_exit(&tp->tn_rwlock);
rw_exit(&parent->tn_rwlock);
@@ -1141,8 +1139,7 @@ tmp_link(
parent = (struct tmpnode *)VTOTN(dvp);
from = (struct tmpnode *)VTOTN(srcvp);
- if ((srcvp->v_type == VDIR &&
- secpolicy_fs_linkdir(cred, dvp->v_vfsp)) ||
+ if (srcvp->v_type == VDIR ||
(from->tn_uid != crgetuid(cred) && secpolicy_basic_link(cred)))
return (EPERM);