Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f5ff766 authored by Dmitri Monakhov's avatar Dmitri Monakhov Committed by Al Viro
Browse files

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: default avatarDmitri Monakhov <dmonakhov@openvz.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 5b6f1eb9
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1766,7 +1766,7 @@ int should_remove_suid(struct dentry *dentry)
	if (unlikely((mode & S_ISGID) && (mode & S_IXGRP)))
	if (unlikely((mode & S_ISGID) && (mode & S_IXGRP)))
		kill |= ATTR_KILL_SGID;
		kill |= ATTR_KILL_SGID;


	if (unlikely(kill && !capable(CAP_FSETID)))
	if (unlikely(kill && !capable(CAP_FSETID) && S_ISREG(mode)))
		return kill;
		return kill;


	return 0;
	return 0;