tools: fix a memory leak
authorIker Pedrosa <ikerpedrosam@gmail.com>
Mon, 29 Jul 2024 10:57:19 +0000 (12:57 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 31 Jul 2024 08:58:18 +0000 (10:58 +0200)
`info` variable is allocated, but never freed when the loop continues.
Free it so that it isn't leaked.

Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
Reviewed-by: Kent Gibson <warthog618@gmail.com>
Link: https://lore.kernel.org/r/418b4fa7b6279b15ea10936d65ce45e01675e491.1722250385.git.ikerpedrosam@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
tools/gpioinfo.c

index 44d1c8c77f8fde5c995237a22205ad05339aeea5..d5e4751479db96dea4448c3aafdab8faf6c7a10f 100644 (file)
@@ -195,8 +195,10 @@ static void list_lines(struct line_resolver *resolver, struct gpiod_chip *chip,
                                   offset, gpiod_chip_info_get_name(chip_info));
 
                if (resolver->num_lines &&
-                   !resolve_line(resolver, info, chip_num))
+                   !resolve_line(resolver, info, chip_num)) {
+                       gpiod_line_info_free(info);
                        continue;
+               }
 
                if (resolver->num_lines) {
                        printf("%s %u", gpiod_chip_info_get_name(chip_info),