summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitri Monakhov <dmonakhov@openvz.org>2008-12-01 22:34:56 (GMT)
committerAl Viro <viro@zeniv.linux.org.uk>2009-01-05 16:53:07 (GMT)
commit7f5ff766a7babd72fc192125e12ef5570effff4c (patch)
treec41659d7614ea70c3dc853c6187f1860d030888b
parent5b6f1eb97d462a45be3b30759758b5fdbb562c8c (diff)
downloadlinux-fsl-qoriq-7f5ff766a7babd72fc192125e12ef5570effff4c.tar.xz
kill suid bit only for regular files
We don't have to do it because it is useless for non regular files. In fact block device may trigger this path without dentry->d_inode->i_mutex. (akpm: concerns were expressed (by me) about S_ISDIR inodes) Signed-off-by: Dmitri Monakhov <dmonakhov@openvz.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--mm/filemap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/filemap.c b/mm/filemap.c
index f3e5f89..ed53ce8 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1766,7 +1766,7 @@ int should_remove_suid(struct dentry *dentry)
if (unlikely((mode & S_ISGID) && (mode & S_IXGRP)))
kill |= ATTR_KILL_SGID;
- if (unlikely(kill && !capable(CAP_FSETID)))
+ if (unlikely(kill && !capable(CAP_FSETID) && S_ISREG(mode)))
return kill;
return 0;