From 2cd2989123a6521b118b78a7fce9e050608d75ff Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Tue, 15 Apr 2025 08:14:00 +0200 Subject: [PATCH] UBUNTU: SAUCE: gpio: aggregator: Fix leak in gpio_aggregator_parse() BugLink: https://bugs.launchpad.net/bugs/2103496 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 Acked-by: Koichiro Den Link:https://lore.kernel.org/r/e023bfe52509ce1bef6209ec7c47e99279c551dd.1744452787.git.dan.carpenter@linaro.org Signed-off-by: Bartosz Golaszewski (cherry picked from commit d945ff52642d98eb6fa191f88a9cfde729129395 gpio/for-next) Signed-off-by: Koichiro Den Acked-by: Jacob Martin Acked-by: Stefan Bader Signed-off-by: Stefan Bader --- drivers/gpio/gpio-aggregator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-aggregator.c b/drivers/gpio/gpio-aggregator.c index 03e0011b3836..7a15432d0bef 100644 --- a/drivers/gpio/gpio-aggregator.c +++ b/drivers/gpio/gpio-aggregator.c @@ -1087,7 +1087,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) {