diff options
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index acf0a5a06da7..8c8714fcb53c 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -2133,9 +2133,12 @@ static int do_proc_douintvec_conv(bool *negp, unsigned long *lvalp, | |||
2133 | if (write) { | 2133 | if (write) { |
2134 | if (*negp) | 2134 | if (*negp) |
2135 | return -EINVAL; | 2135 | return -EINVAL; |
2136 | if (*lvalp > UINT_MAX) | ||
2137 | return -EINVAL; | ||
2136 | *valp = *lvalp; | 2138 | *valp = *lvalp; |
2137 | } else { | 2139 | } else { |
2138 | unsigned int val = *valp; | 2140 | unsigned int val = *valp; |
2141 | *negp = false; | ||
2139 | *lvalp = (unsigned long)val; | 2142 | *lvalp = (unsigned long)val; |
2140 | } | 2143 | } |
2141 | return 0; | 2144 | return 0; |