[PATCH v2 0/3] sysctl: fix range-checking in do_proc_dointvec_minmax_conv()

From: Zev Weiss
Date: Thu Feb 07 2019 - 07:35:01 EST


Hello,

After being left with an unusable system after a typo executing
something like 'echo $((1<<24)) > /proc/sys/vm/max_map_count', I found
that do_proc_dointvec_minmax_conv() was missing a check to ensure that
the converted value actually fits in an int.

The first of the following patches enhances the sysctl selftest such
that it detects this problem; the second provides a minimal fix
(suitable for -stable) such that the selftest passes. The third patch
then performs a more thorough refactoring to eliminate the code
duplication that led to the bug in the first place (maintaining the
passing status of the selftest).


Changes in v2:
- Rearranged selftest to also test negative values and provide more
info in comments
- Added intermediate patch as a minimal fix for -stable without the
refactoring


Thanks,
Zev Weiss