On Thu, Nov 10, 2022 at 6:37 AM Dong Chenchen <dongchenchen2@xxxxxxxxxx> wrote: > > When regmap_bulk_read() fails, it does not free steps_raw, > which will cause a memory leak issue, this patch fixes it. > > Fixes: d221de60eee3 ("iio: accel: bma400: Add separate channel for step counter") > Signed-off-by: Dong Chenchen <dongchenchen2@xxxxxxxxxx> Reviewed-by: Jagath Jog J <jagathjog1996@xxxxxxxxx> Thanks for catching this Regards, Jagath > --- > drivers/iio/accel/bma400_core.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/accel/bma400_core.c b/drivers/iio/accel/bma400_core.c > index ad8fce3e08cd..43976cf5a91b 100644 > --- a/drivers/iio/accel/bma400_core.c > +++ b/drivers/iio/accel/bma400_core.c > @@ -805,8 +805,10 @@ static int bma400_get_steps_reg(struct bma400_data *data, int *val) > > ret = regmap_bulk_read(data->regmap, BMA400_STEP_CNT0_REG, > steps_raw, BMA400_STEP_RAW_LEN); > - if (ret) > + if (ret) { > + kfree(steps_raw); > return ret; > + } > *val = get_unaligned_le24(steps_raw); > kfree(steps_raw); > return IIO_VAL_INT; > -- > 2.25.1 >