diff options
| author | Petr Holasek <pholasek@redhat.com> | 2011-03-23 19:43:09 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-23 22:46:51 -0400 |
| commit | cb16e95fa2996743a6e80a665ed2ed0590bd38cf (patch) | |
| tree | 7128a7d03a94a68dd9550f33ac66876bf6854ad0 /kernel | |
| parent | 256c53a65128cbc8a766b1503f3f25a52a8d07cb (diff) | |
sysctl: add some missing input constraint checks
Add boundaries of allowed input ranges for: dirty_expire_centisecs,
drop_caches, overcommit_memory, page-cluster and panic_on_oom.
Signed-off-by: Petr Holasek <pholasek@redhat.com>
Acked-by: Dave Young <hidave.darkstar@gmail.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sysctl.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 40245d697602..97ab1690f5ed 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
| @@ -117,6 +117,7 @@ static int neg_one = -1; | |||
| 117 | static int zero; | 117 | static int zero; |
| 118 | static int __maybe_unused one = 1; | 118 | static int __maybe_unused one = 1; |
| 119 | static int __maybe_unused two = 2; | 119 | static int __maybe_unused two = 2; |
| 120 | static int __maybe_unused three = 3; | ||
| 120 | static unsigned long one_ul = 1; | 121 | static unsigned long one_ul = 1; |
| 121 | static int one_hundred = 100; | 122 | static int one_hundred = 100; |
| 122 | #ifdef CONFIG_PRINTK | 123 | #ifdef CONFIG_PRINTK |
| @@ -971,14 +972,18 @@ static struct ctl_table vm_table[] = { | |||
| 971 | .data = &sysctl_overcommit_memory, | 972 | .data = &sysctl_overcommit_memory, |
| 972 | .maxlen = sizeof(sysctl_overcommit_memory), | 973 | .maxlen = sizeof(sysctl_overcommit_memory), |
| 973 | .mode = 0644, | 974 | .mode = 0644, |
| 974 | .proc_handler = proc_dointvec, | 975 | .proc_handler = proc_dointvec_minmax, |
| 976 | .extra1 = &zero, | ||
| 977 | .extra2 = &two, | ||
| 975 | }, | 978 | }, |
| 976 | { | 979 | { |
| 977 | .procname = "panic_on_oom", | 980 | .procname = "panic_on_oom", |
| 978 | .data = &sysctl_panic_on_oom, | 981 | .data = &sysctl_panic_on_oom, |
| 979 | .maxlen = sizeof(sysctl_panic_on_oom), | 982 | .maxlen = sizeof(sysctl_panic_on_oom), |
| 980 | .mode = 0644, | 983 | .mode = 0644, |
| 981 | .proc_handler = proc_dointvec, | 984 | .proc_handler = proc_dointvec_minmax, |
| 985 | .extra1 = &zero, | ||
| 986 | .extra2 = &two, | ||
| 982 | }, | 987 | }, |
| 983 | { | 988 | { |
| 984 | .procname = "oom_kill_allocating_task", | 989 | .procname = "oom_kill_allocating_task", |
| @@ -1006,7 +1011,8 @@ static struct ctl_table vm_table[] = { | |||
| 1006 | .data = &page_cluster, | 1011 | .data = &page_cluster, |
| 1007 | .maxlen = sizeof(int), | 1012 | .maxlen = sizeof(int), |
| 1008 | .mode = 0644, | 1013 | .mode = 0644, |
| 1009 | .proc_handler = proc_dointvec, | 1014 | .proc_handler = proc_dointvec_minmax, |
| 1015 | .extra1 = &zero, | ||
| 1010 | }, | 1016 | }, |
| 1011 | { | 1017 | { |
| 1012 | .procname = "dirty_background_ratio", | 1018 | .procname = "dirty_background_ratio", |
| @@ -1054,7 +1060,8 @@ static struct ctl_table vm_table[] = { | |||
| 1054 | .data = &dirty_expire_interval, | 1060 | .data = &dirty_expire_interval, |
| 1055 | .maxlen = sizeof(dirty_expire_interval), | 1061 | .maxlen = sizeof(dirty_expire_interval), |
| 1056 | .mode = 0644, | 1062 | .mode = 0644, |
| 1057 | .proc_handler = proc_dointvec, | 1063 | .proc_handler = proc_dointvec_minmax, |
| 1064 | .extra1 = &zero, | ||
| 1058 | }, | 1065 | }, |
| 1059 | { | 1066 | { |
| 1060 | .procname = "nr_pdflush_threads", | 1067 | .procname = "nr_pdflush_threads", |
| @@ -1130,6 +1137,8 @@ static struct ctl_table vm_table[] = { | |||
| 1130 | .maxlen = sizeof(int), | 1137 | .maxlen = sizeof(int), |
| 1131 | .mode = 0644, | 1138 | .mode = 0644, |
| 1132 | .proc_handler = drop_caches_sysctl_handler, | 1139 | .proc_handler = drop_caches_sysctl_handler, |
| 1140 | .extra1 = &one, | ||
| 1141 | .extra2 = &three, | ||
| 1133 | }, | 1142 | }, |
| 1134 | #ifdef CONFIG_COMPACTION | 1143 | #ifdef CONFIG_COMPACTION |
| 1135 | { | 1144 | { |
