Преглед на файлове

iio: tsl2x7x/tsl2772: avoid potential division by zero

It may be possible for tsl2772_get_lux to return a zero lux value
and hence a division by zero can occur when lux_val is zero. Check
for this case and return -ERANGE to avoid the division by zero.

Detected by CoverityScan, CID#1469484 ("Division or modulo by zero")

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Colin Ian King преди 7 години
родител
ревизия
288320f6e9
променени са 1 файла, в които са добавени 2 реда и са изтрити 0 реда
  1. 2 0
      drivers/iio/light/tsl2772.c

+ 2 - 0
drivers/iio/light/tsl2772.c

@@ -582,6 +582,8 @@ static int tsl2772_als_calibrate(struct iio_dev *indio_dev)
 			"%s: failed to get lux\n", __func__);
 		return lux_val;
 	}
+	if (lux_val == 0)
+		return -ERANGE;
 
 	ret = (chip->settings.als_cal_target * chip->settings.als_gain_trim) /
 			lux_val;