aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2007-05-08 03:30:40 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:15:12 -0400
commitee6f958291e2a768fd727e7a67badfff0b67711a (patch)
tree1313cb3a5d50a296b1801022f904f3a5e9601de2
parent2f1a2ccb9c0de632ab07193becf5f7121794f6ae (diff)
check privileges before setting mount propagation
There's a missing check for CAP_SYS_ADMIN in do_change_type(). Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/namespace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/namespace.c b/fs/namespace.c
index 72bb1062bfe7..b696e3a0d18f 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -886,6 +886,9 @@ static int do_change_type(struct nameidata *nd, int flag)
886 int recurse = flag & MS_REC; 886 int recurse = flag & MS_REC;
887 int type = flag & ~MS_REC; 887 int type = flag & ~MS_REC;
888 888
889 if (!capable(CAP_SYS_ADMIN))
890 return -EPERM;
891
889 if (nd->dentry != nd->mnt->mnt_root) 892 if (nd->dentry != nd->mnt->mnt_root)
890 return -EINVAL; 893 return -EINVAL;
891 894