sysctl: fix min/max handling in __do_proc_doulongvec_minmax()
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 7 Oct 2010 19:59:29 +0000 (12:59 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 7 Oct 2010 20:31:21 +0000 (13:31 -0700)
commit27b3d80a7b6adcf069b5e869e4efcc3a79f88a91
treeaa2c9db5131dee90a0aa8155ac3dfa1ddb07619b
parentaaac7d9e0a0630e79069341a37978b39e4bca704
sysctl: fix min/max handling in __do_proc_doulongvec_minmax()

When proc_doulongvec_minmax() is used with an array of longs, and no
min/max check requested (.extra1 or .extra2 being NULL), we dereference a
NULL pointer for the second element of the array.

Noticed while doing some changes in network stack for the "16TB problem"

Fix is to not change min & max pointers in __do_proc_doulongvec_minmax(),
so that all elements of the vector share an unique min/max limit, like
proc_dointvec_minmax().

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Americo Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/sysctl.c