summaryrefslogtreecommitdiffstats
path: root/sys/gnu
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2007-03-01 20:38:24 +0000
committerpjd <pjd@FreeBSD.org>2007-03-01 20:38:24 +0000
commit9558665f1e9f1f9706571aaa461046ce5b51544e (patch)
tree63f80dc58e09bd7368c1fc36f80e0a5cb3f09a2b /sys/gnu
parent62de975b4dd173f6b7bf54718b6fab2809bec4fb (diff)
downloadFreeBSD-src-9558665f1e9f1f9706571aaa461046ce5b51544e.zip
FreeBSD-src-9558665f1e9f1f9706571aaa461046ce5b51544e.tar.gz
Avoid checking for privileges if there is no need to.
Discussed with: rwatson
Diffstat (limited to 'sys/gnu')
-rw-r--r--sys/gnu/fs/ext2fs/ext2_vnops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_vnops.c b/sys/gnu/fs/ext2fs/ext2_vnops.c
index 5ed7d11..c95777b 100644
--- a/sys/gnu/fs/ext2fs/ext2_vnops.c
+++ b/sys/gnu/fs/ext2fs/ext2_vnops.c
@@ -596,7 +596,7 @@ ext2_chown(vp, uid, gid, cred, td)
ip->i_gid = gid;
ip->i_uid = uid;
ip->i_flag |= IN_CHANGE;
- if (ouid != uid || ogid != gid) {
+ if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) {
if (priv_check_cred(cred, PRIV_VFS_CLEARSUGID,
SUSER_ALLOWJAIL) != 0)
ip->i_mode &= ~(ISUID | ISGID);
OpenPOWER on IntegriCloud