diff mbox series

iio:addac:ad74413r: Fix uninitialized ret in a path that won't be hit.

Message ID 20211220164726.3136307-1-jic23@kernel.org (mailing list archive)
State Accepted
Headers show
Series iio:addac:ad74413r: Fix uninitialized ret in a path that won't be hit. | expand

Commit Message

Jonathan Cameron Dec. 20, 2021, 4:47 p.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

I don't believe it's possible to hit this, because we drop
out of __iio_update_buffers() earlier in the event of an empty
list.  However, that is not visible to the compiler so lets
return an error if we do hit the loop with an empty bitmask.

Fixes: 5d97d9e9a703 ("iio: addac: ad74413r: fix off by one in ad74413r_parse_channel_config()")
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Cosmin Tanislav <cosmin.tanislav@analog.com>
---
 drivers/iio/addac/ad74413r.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jonathan Cameron Dec. 20, 2021, 4:51 p.m. UTC | #1
On Mon, 20 Dec 2021 16:47:26 +0000
Jonathan Cameron <jic23@kernel.org> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> I don't believe it's possible to hit this, because we drop
> out of __iio_update_buffers() earlier in the event of an empty
> list.  However, that is not visible to the compiler so lets
> return an error if we do hit the loop with an empty bitmask.
> 
> Fixes: 5d97d9e9a703 ("iio: addac: ad74413r: fix off by one in ad74413r_parse_channel_config()")
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Cosmin Tanislav <cosmin.tanislav@analog.com>
Given this is 'hopefully' entirely safe and I'd like to get a pull
request out later in the week I'm going to apply this immediately.

Note I'd have just fixed it up in the original patch normally but for
some reason didn't see the warning until the tree was in a non rebasing
state + we have some other fixes in there for this driver.

Applied to the togreg branch of iio.git.  Pushed out directly rather than
normal testing.  I'll sneak a rebase in if anyone gives me a tag
before I apply much on top of it.

Thanks,

Jonathan

> ---
>  drivers/iio/addac/ad74413r.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/addac/ad74413r.c b/drivers/iio/addac/ad74413r.c
> index 289d254943e1..5271073bb74e 100644
> --- a/drivers/iio/addac/ad74413r.c
> +++ b/drivers/iio/addac/ad74413r.c
> @@ -843,7 +843,7 @@ static int ad74413r_update_scan_mode(struct iio_dev *indio_dev,
>  	u8 *rx_buf = &st->adc_samples_buf.rx_buf[-1 * AD74413R_FRAME_SIZE];
>  	u8 *tx_buf = st->adc_samples_tx_buf;
>  	unsigned int channel;
> -	int ret;
> +	int ret = -EINVAL;
>  
>  	mutex_lock(&st->lock);
>
Cai Huoqing Dec. 21, 2021, 1:20 p.m. UTC | #2
On 20 12月 21 16:47:26, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> I don't believe it's possible to hit this, because we drop
> out of __iio_update_buffers() earlier in the event of an empty
> list.  However, that is not visible to the compiler so lets
> return an error if we do hit the loop with an empty bitmask.
> 
> Fixes: 5d97d9e9a703 ("iio: addac: ad74413r: fix off by one in ad74413r_parse_channel_config()")
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Cosmin Tanislav <cosmin.tanislav@analog.com>
> ---
>  drivers/iio/addac/ad74413r.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/addac/ad74413r.c b/drivers/iio/addac/ad74413r.c
> index 289d254943e1..5271073bb74e 100644
> --- a/drivers/iio/addac/ad74413r.c
> +++ b/drivers/iio/addac/ad74413r.c
> @@ -843,7 +843,7 @@ static int ad74413r_update_scan_mode(struct iio_dev *indio_dev,
>  	u8 *rx_buf = &st->adc_samples_buf.rx_buf[-1 * AD74413R_FRAME_SIZE];
>  	u8 *tx_buf = st->adc_samples_tx_buf;
>  	unsigned int channel;
> -	int ret;
> +	int ret = -EINVAL;
Reviewed-by: Cai Huoqing <cai.huoqing@linux.dev>
>  
>  	mutex_lock(&st->lock);
>  
> -- 
> 2.34.1
>
diff mbox series

Patch

diff --git a/drivers/iio/addac/ad74413r.c b/drivers/iio/addac/ad74413r.c
index 289d254943e1..5271073bb74e 100644
--- a/drivers/iio/addac/ad74413r.c
+++ b/drivers/iio/addac/ad74413r.c
@@ -843,7 +843,7 @@  static int ad74413r_update_scan_mode(struct iio_dev *indio_dev,
 	u8 *rx_buf = &st->adc_samples_buf.rx_buf[-1 * AD74413R_FRAME_SIZE];
 	u8 *tx_buf = st->adc_samples_tx_buf;
 	unsigned int channel;
-	int ret;
+	int ret = -EINVAL;
 
 	mutex_lock(&st->lock);