* [PATCH] iio: chemical: bme680: Fix uninitialized variable in __bme680_read_raw()
@ 2025-01-08 9:37 Dan Carpenter
2025-01-08 21:29 ` Vasileios Amoiridis
0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2025-01-08 9:37 UTC (permalink / raw)
To: Vasileios Amoiridis
Cc: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel,
kernel-janitors
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>
---
drivers/iio/chemical/bme680_core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
index 26eb0fa77a43..9d73fd2cf52c 100644
--- a/drivers/iio/chemical/bme680_core.c
+++ b/drivers/iio/chemical/bme680_core.c
@@ -879,11 +879,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);
--
2.45.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] iio: chemical: bme680: Fix uninitialized variable in __bme680_read_raw()
2025-01-08 9:37 [PATCH] iio: chemical: bme680: Fix uninitialized variable in __bme680_read_raw() Dan Carpenter
@ 2025-01-08 21:29 ` Vasileios Amoiridis
2025-01-12 13:13 ` Jonathan Cameron
0 siblings, 1 reply; 3+ messages in thread
From: Vasileios Amoiridis @ 2025-01-08 21:29 UTC (permalink / raw)
To: Dan Carpenter
Cc: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel,
kernel-janitors
On Wed, Jan 08, 2025 at 12:37:22PM +0300, Dan Carpenter wrote:
> 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>
> ---
> drivers/iio/chemical/bme680_core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
> index 26eb0fa77a43..9d73fd2cf52c 100644
> --- a/drivers/iio/chemical/bme680_core.c
> +++ b/drivers/iio/chemical/bme680_core.c
> @@ -879,11 +879,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);
> --
> 2.45.2
>
Acked-by: Vasileios Amoiridis <vassilisamir@gmail.com>
Hi Dan,
I had already applied this for IIO_CHAN_INFO_PROCESSED but not for the
IIO_CHAN_INFO_RAW channel... Very good that you spotted it!
Cheers,
Vasilis
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] iio: chemical: bme680: Fix uninitialized variable in __bme680_read_raw()
2025-01-08 21:29 ` Vasileios Amoiridis
@ 2025-01-12 13:13 ` Jonathan Cameron
0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2025-01-12 13:13 UTC (permalink / raw)
To: Vasileios Amoiridis
Cc: Dan Carpenter, Lars-Peter Clausen, linux-iio, linux-kernel,
kernel-janitors
On Wed, 8 Jan 2025 22:29:40 +0100
Vasileios Amoiridis <vassilisamir@gmail.com> wrote:
> On Wed, Jan 08, 2025 at 12:37:22PM +0300, Dan Carpenter wrote:
> > 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>
> > ---
> > drivers/iio/chemical/bme680_core.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
> > index 26eb0fa77a43..9d73fd2cf52c 100644
> > --- a/drivers/iio/chemical/bme680_core.c
> > +++ b/drivers/iio/chemical/bme680_core.c
> > @@ -879,11 +879,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);
> > --
> > 2.45.2
> >
>
> Acked-by: Vasileios Amoiridis <vassilisamir@gmail.com>
>
> Hi Dan,
>
> I had already applied this for IIO_CHAN_INFO_PROCESSED but not for the
> IIO_CHAN_INFO_RAW channel... Very good that you spotted it!
Applied to the fixes-togreg branch of iio.git and marked for stable.
Most likely will go in during the merge window or slightly after.
>
> Cheers,
> Vasilis
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-01-12 13:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-08 9:37 [PATCH] iio: chemical: bme680: Fix uninitialized variable in __bme680_read_raw() Dan Carpenter
2025-01-08 21:29 ` Vasileios Amoiridis
2025-01-12 13:13 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox