Messages in this thread | | | Date | Sun, 26 Oct 2008 21:47:41 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] kill suid bit only for regular files |
| |
On Sun, 19 Oct 2008 18:00:39 +0400 Dmitri Monakhov <dmonakhov@openvz.org> wrote:
> We don't have to do it because it is useless for non regular files.
Are we sure that should_remove_suid() is not and never will used for directories?
> In fact block device may trigger this path without dentry->d_inode->i_mutex.
What's wrong with blockdevs triggering this path?
Better changelogs, please.
> Signed-off-by: Dmitri Monakhov <dmonakhov@openvz.org> > --- > mm/filemap.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/mm/filemap.c b/mm/filemap.c > index a2907d5..3d5a2e7 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -1767,7 +1767,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;
| |