summaryrefslogtreecommitdiffstats
path: root/kernel/sysctl_check.c
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@parallels.com>2008-07-25 10:48:31 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-25 19:53:45 +0200
commit99541c23cd32bacf1a591ca537a7c0cb9053ad7e (patch)
treec7156bfa677ddcf6a376ca7d9eaa8d924d7824db /kernel/sysctl_check.c
parentproc: misplaced export of find_get_pid (diff)
downloadlinux-99541c23cd32bacf1a591ca537a7c0cb9053ad7e.tar.xz
linux-99541c23cd32bacf1a591ca537a7c0cb9053ad7e.zip
sysctl: check for bogus modes
Catch, e. g., 644/0644 typo. Signed-off-by: Alexey Dobriyan <adobriyan@parallels.com> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/sysctl_check.c')
-rw-r--r--kernel/sysctl_check.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
index c09350d564f2..c35da23ab8fb 100644
--- a/kernel/sysctl_check.c
+++ b/kernel/sysctl_check.c
@@ -1532,6 +1532,8 @@ int sysctl_check_table(struct nsproxy *namespaces, struct ctl_table *table)
sysctl_check_leaf(namespaces, table, &fail);
}
sysctl_check_bin_path(table, &fail);
+ if (table->mode > 0777)
+ set_fail(&fail, table, "bogus .mode");
if (fail) {
set_fail(&fail, table, NULL);
error = -EINVAL;