mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 20:48:49 +08:00
sysctl: range checking in do_proc_dointvec_ms_jiffies_conv
When (integer) sysctl values are expressed in ms and have to be represented internally as jiffies. The msecs_to_jiffies function returns an unsigned long, which gets assigned to the integer. This patch prevents the value to be assigned if bigger than INT_MAX, done in a similar way as in cba9f3 ("Range checking in do_proc_dointvec_(userhz_)jiffies_conv"). Signed-off-by: Francesco Fusco <ffusco@redhat.com> CC: Andrew Morton <akpm@linux-foundation.org> CC: linux-kernel@vger.kernel.org Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
555445cd11
commit
d738ce8fdc
@ -2346,7 +2346,11 @@ static int do_proc_dointvec_ms_jiffies_conv(bool *negp, unsigned long *lvalp,
|
||||
int write, void *data)
|
||||
{
|
||||
if (write) {
|
||||
*valp = msecs_to_jiffies(*negp ? -*lvalp : *lvalp);
|
||||
unsigned long jif = msecs_to_jiffies(*negp ? -*lvalp : *lvalp);
|
||||
|
||||
if (jif > INT_MAX)
|
||||
return 1;
|
||||
*valp = (int)jif;
|
||||
} else {
|
||||
int val = *valp;
|
||||
unsigned long lval;
|
||||
|
Loading…
Reference in New Issue
Block a user