]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: adc: meson-saradc: fix calibration buffer leak on error
authorFelix Gu <ustc.gu@gmail.com>
Mon, 27 Apr 2026 11:26:31 +0000 (19:26 +0800)
committerJonathan Cameron <jic23@kernel.org>
Fri, 15 May 2026 11:05:34 +0000 (12:05 +0100)
meson_sar_adc_temp_sensor_init() allocates a buffer with
nvmem_cell_read(), but the old code leaked it if
syscon_regmap_lookup_by_phandle() failed.

Fix this by adding missing kfree(buf).

Fixes: d6f2eac64403 ("iio: adc: meson: no devm for nvmem_cell_get")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/meson_saradc.c

index 23991a3612bdc6b3ff8880e123e464b9a6a9bb5b..000e39ca5c624eb67f0d16c0df1eb155d96e8b66 100644 (file)
@@ -817,9 +817,11 @@ static int meson_sar_adc_temp_sensor_init(struct iio_dev *indio_dev)
        }
 
        priv->tsc_regmap = syscon_regmap_lookup_by_phandle(dev->of_node, "amlogic,hhi-sysctrl");
-       if (IS_ERR(priv->tsc_regmap))
+       if (IS_ERR(priv->tsc_regmap)) {
+               kfree(buf);
                return dev_err_probe(dev, PTR_ERR(priv->tsc_regmap),
                                     "failed to get amlogic,hhi-sysctrl regmap\n");
+       }
 
        trimming_bits = priv->param->temperature_trimming_bits;
        trimming_mask = BIT(trimming_bits) - 1;