2024-04-04 07:47:18

by Dan Carpenter

[permalink] [raw]
Subject: [PATCH] iio: light: apds9306: Fix off by one in apds9306_sampling_freq_get()

The > comparison needs to be >= to prevent an out of bounds access.

Fixes: 620d1e6c7a3f ("iio: light: Add support for APDS9306 Light Sensor")
Signed-off-by: Dan Carpenter <[email protected]>
---
drivers/iio/light/apds9306.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
index 4d8490602cd7..49fa6b7d5170 100644
--- a/drivers/iio/light/apds9306.c
+++ b/drivers/iio/light/apds9306.c
@@ -635,7 +635,7 @@ static int apds9306_sampling_freq_get(struct apds9306_data *data, int *val,
if (ret)
return ret;

- if (repeat_rate_idx > ARRAY_SIZE(apds9306_repeat_rate_freq))
+ if (repeat_rate_idx >= ARRAY_SIZE(apds9306_repeat_rate_freq))
return -EINVAL;

*val = apds9306_repeat_rate_freq[repeat_rate_idx][0];
--
2.43.0



2024-04-05 07:14:50

by Subhajit Ghosh

[permalink] [raw]
Subject: Re: [PATCH] iio: light: apds9306: Fix off by one in apds9306_sampling_freq_get()

On 4/4/24 18:01, Dan Carpenter wrote:
> The > comparison needs to be >= to prevent an out of bounds access.
>
> Fixes: 620d1e6c7a3f ("iio: light: Add support for APDS9306 Light Sensor")
> Signed-off-by: Dan Carpenter <[email protected]>
> ---
> drivers/iio/light/apds9306.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
> index 4d8490602cd7..49fa6b7d5170 100644
> --- a/drivers/iio/light/apds9306.c
> +++ b/drivers/iio/light/apds9306.c
> @@ -635,7 +635,7 @@ static int apds9306_sampling_freq_get(struct apds9306_data *data, int *val,
> if (ret)
> return ret;
>
> - if (repeat_rate_idx > ARRAY_SIZE(apds9306_repeat_rate_freq))
> + if (repeat_rate_idx >= ARRAY_SIZE(apds9306_repeat_rate_freq))
> return -EINVAL;
Good find.

Reviewed-by: Subhajit Ghosh <[email protected]>

Regards,
Subhajit Ghosh
>
> *val = apds9306_repeat_rate_freq[repeat_rate_idx][0];


2024-04-06 15:43:00

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH] iio: light: apds9306: Fix off by one in apds9306_sampling_freq_get()

On Fri, 5 Apr 2024 17:44:31 +1030
Subhajit Ghosh <[email protected]> wrote:

> On 4/4/24 18:01, Dan Carpenter wrote:
> > The > comparison needs to be >= to prevent an out of bounds access.
> >
> > Fixes: 620d1e6c7a3f ("iio: light: Add support for APDS9306 Light Sensor")
> > Signed-off-by: Dan Carpenter <[email protected]>
> > ---
> > drivers/iio/light/apds9306.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
> > index 4d8490602cd7..49fa6b7d5170 100644
> > --- a/drivers/iio/light/apds9306.c
> > +++ b/drivers/iio/light/apds9306.c
> > @@ -635,7 +635,7 @@ static int apds9306_sampling_freq_get(struct apds9306_data *data, int *val,
> > if (ret)
> > return ret;
> >
> > - if (repeat_rate_idx > ARRAY_SIZE(apds9306_repeat_rate_freq))
> > + if (repeat_rate_idx >= ARRAY_SIZE(apds9306_repeat_rate_freq))
> > return -EINVAL;
> Good find.
>
> Reviewed-by: Subhajit Ghosh <[email protected]>
>
Applied to the togreg branch of iio.git (where the fixes patch is currently)
and pushed out as testing initially because there is other stuff in there
I want 0-day to checkout before I make a mess of linux-next.

Thanks,

Jonathan

> Regards,
> Subhajit Ghosh
> >
> > *val = apds9306_repeat_rate_freq[repeat_rate_idx][0];
>