iio: imu: bno055: uninitialized variable bug in bno055_trigger_handler()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 14 Oct 2022 09:39:52 +0000 (12:39 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 1 Nov 2022 08:48:13 +0000 (08:48 +0000)
This bug is basically harmless, although it will trigger a runtime warning
if you use KMSan.  On the first iteration through the loop, the
"best_delta" variable is uninitialized so re-order the condition to
prevent reading uninitialized memory.

Fixes: 4aefe1c2bd0c ("iio: imu: add Bosch Sensortec BNO055 core driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/Y0kuaO9PQkSQja+A@kili
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/bno055/bno055.c

index 307557a..52744dd 100644 (file)
@@ -632,7 +632,7 @@ static int bno055_set_regmask(struct bno055_priv *priv, int val, int val2,
                        return -EINVAL;
                }
                delta = abs(tbl_val - req_val);
-               if (delta < best_delta || first) {
+               if (first || delta < best_delta) {
                        best_delta = delta;
                        hwval = i;
                        first = false;