From: Guenter Roeck Date: Mon, 5 Dec 2016 02:16:48 +0000 (-0800) Subject: hwmon: (lm85) Fix overflows seen when writing voltage limit attributes X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=67b2003485ee48dcfcb5338171defa4093bba02e;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git hwmon: (lm85) Fix overflows seen when writing voltage limit attributes Writes into voltage limit attributes can overflow due to an unbound multiplication. Reviewed-by: Jean Delvare Signed-off-by: Guenter Roeck --- diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c index 6ff773fcaefb..29c8136ce9c5 100644 --- a/drivers/hwmon/lm85.c +++ b/drivers/hwmon/lm85.c @@ -136,7 +136,8 @@ static const int lm85_scaling[] = { /* .001 Volts */ #define SCALE(val, from, to) (((val) * (to) + ((from) / 2)) / (from)) #define INS_TO_REG(n, val) \ - clamp_val(SCALE(val, lm85_scaling[n], 192), 0, 255) + SCALE(clamp_val(val, 0, 255 * lm85_scaling[n] / 192), \ + lm85_scaling[n], 192) #define INSEXT_FROM_REG(n, val, ext) \ SCALE(((val) << 4) + (ext), 192 << 4, lm85_scaling[n])