iio: accel: bma400: Fix memory leak in bma400_get_steps_reg()
authorDong Chenchen <dongchenchen2@huawei.com>
Thu, 10 Nov 2022 01:07:26 +0000 (09:07 +0800)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 12 Nov 2022 17:49:22 +0000 (17:49 +0000)
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@huawei.com>
Reviewed-by: Jagath Jog J <jagathjog1996@gmail.com>
Link: https://lore.kernel.org/r/20221110010726.235601-1-dongchenchen2@huawei.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/bma400_core.c

index 490c342ef72a62f0c03f54e0f69a773eda87bf17..6e4d10a7cd32210de606f70b42e845a4806e93ad 100644 (file)
@@ -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;