]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iio: chemical: bme680: Fix uninitialized variable in __bme680_read_raw()
authorDan Carpenter <dan.carpenter@linaro.org>
Wed, 8 Jan 2025 09:37:22 +0000 (12:37 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 12 Jan 2025 13:12:48 +0000 (13:12 +0000)
The bme680_read_temp() function takes a pointer to s16 but we're passing
an int pointer to it.  This will not work on big endian systems and it
also means that the other 16 bits are uninitialized.

Pass an s16 type variable.

Fixes: f51171ce2236 ("iio: chemical: bme680: Add SCALE and RAW channels")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Vasileios Amoiridis <vassilisamir@gmail.com>
Link: https://patch.msgid.link/4addb68c-853a-49fc-8d40-739e78db5fa1@stanley.mountain
Cc: <stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/chemical/bme680_core.c

index d12270409c8ad2ed6d88475b8d3af7722b33c754..a2949daf946732f8b699bf890535a46a71a4d9e6 100644 (file)
@@ -874,11 +874,11 @@ static int bme680_read_raw(struct iio_dev *indio_dev,
        case IIO_CHAN_INFO_RAW:
                switch (chan->type) {
                case IIO_TEMP:
-                       ret = bme680_read_temp(data, (s16 *)&chan_val);
+                       ret = bme680_read_temp(data, &temp_chan_val);
                        if (ret)
                                return ret;
 
-                       *val = chan_val;
+                       *val = temp_chan_val;
                        return IIO_VAL_INT;
                case IIO_PRESSURE:
                        ret = bme680_read_press(data, &chan_val);