summaryrefslogtreecommitdiff
blob: 41b3196f84ea6b8f2bb0aad16b3ceb774176712d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/07/02 20:55:04-07:00 chrisw@osdl.org 
#   [PATCH] chown permission check fix for ATTR_GID
#   
#   SuSE discovered this problem with chown and ATTR_GID.  Make sure user
#   is authorized to change the group, CAN-2004-0497.
# 
# fs/attr.c
#   2004/07/02 09:07:32-07:00 chrisw@osdl.org +2 -1
#   chown permission check fix for ATTR_GID
# 
diff -Nru a/fs/attr.c b/fs/attr.c
--- a/fs/attr.c	2004-07-08 16:35:57 -07:00
+++ b/fs/attr.c	2004-07-08 16:35:57 -07:00
@@ -35,7 +35,8 @@
 
 	/* Make sure caller can chgrp. */
 	if ((ia_valid & ATTR_GID) &&
-	    (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid) &&
+	    (current->fsuid != inode->i_uid ||
+	    (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid)) &&
 	    !capable(CAP_CHOWN))
 		goto error;