From: Amerigo Wang Date: Tue, 15 Dec 2009 01:59:52 +0000 (-0800) Subject: 'sysctl_max_map_count' should be non-negative X-Git-Tag: firefly_0821_release~11625^2~424 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3ec268a6828ccc37a15e62a7836433b081342345;p=firefly-linux-kernel-4.4.55.git 'sysctl_max_map_count' should be non-negative commit 70da2340fbc68e91e701762f785479ab495a0869 upstream. Jan Engelhardt reported we have this problem: setting max_map_count to a value large enough results in programs dying at first try. This is on 2.6.31.6: 15:59 borg:/proc/sys/vm # echo $[1<<31-1] >max_map_count 15:59 borg:/proc/sys/vm # cat max_map_count 1073741824 15:59 borg:/proc/sys/vm # echo $[1<<31] >max_map_count 15:59 borg:/proc/sys/vm # cat max_map_count Killed This is because we have a chance to make 'max_map_count' negative. but it's meaningless. Make it only accept non-negative values. Reported-by: Jan Engelhardt Signed-off-by: WANG Cong Cc: Ingo Molnar Cc: Peter Zijlstra Cc: James Morris Cc: Alexey Dobriyan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/kernel/sysctl.c b/kernel/sysctl.c index db23ab7e56c0..3928c04965f0 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1607,7 +1607,8 @@ static struct ctl_table debug_table[] = { .data = &show_unhandled_signals, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec + .proc_handler = proc_dointvec, + .extra1 = &zero, }, #endif { .ctl_name = 0 }