gpio: aggregator: Fix leak in gpio_aggregator_parse()
authorDan Carpenter <dan.carpenter@linaro.org>
Sat, 12 Apr 2025 10:15:31 +0000 (13:15 +0300)
committerBartosz Golaszewski <brgl@bgdev.pl>
Mon, 14 Apr 2025 20:25:20 +0000 (22:25 +0200)
Call gpio_aggregator_free_lines() before returning on this error path.

Fixes: 83c8e3df642f ("gpio: aggregator: expose aggregator created via legacy sysfs to configfs")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Koichiro Den <koichiro.den@canonical.com>
Link: https://lore.kernel.org/r/e023bfe52509ce1bef6209ec7c47e99279c551dd.1744452787.git.dan.carpenter@linaro.org
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpio-aggregator.c

index 071d76dbfcecd122d40014496e3f3bf8fe8d85b5..6f941db02c047e4a61b007b9e9c016fa0549bbad 100644 (file)
@@ -1101,7 +1101,7 @@ static int gpio_aggregator_parse(struct gpio_aggregator *aggr)
                error = bitmap_parselist(offsets, bitmap, AGGREGATOR_MAX_GPIOS);
                if (error) {
                        pr_err("Cannot parse %s: %d\n", offsets, error);
-                       return error;
+                       goto err;
                }
 
                for_each_set_bit(i, bitmap, AGGREGATOR_MAX_GPIOS) {