]> www.infradead.org Git - users/borneoa/openocd-next.git/commitdiff
target: free private_config if target initialisation fails
authorTomas Vanek <vanekt@fbl.cz>
Tue, 10 Dec 2024 12:48:53 +0000 (13:48 +0100)
committerTomas Vanek <vanekt@fbl.cz>
Thu, 9 Jan 2025 20:16:22 +0000 (20:16 +0000)
Fixes private_config memory leak when xx_deinit_target() is not called

Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Change-Id: Ie7cce7f24af24695e7d2c1cd1882474c6863b80d
Reviewed-on: https://review.openocd.org/c/openocd/+/8642
Tested-by: jenkins
Reviewed-by: zapb <dev@zapb.de>
Reviewed-by: Evgeniy Naydanov <evgeniy.naydanov@syntacore.com>
src/target/target.c

index 6c474899a4bf0d7d4fea8147d5b39743f97be371..1fc8baf2c08f6d928ddc20bcfa8425df9d7a8ace 100644 (file)
@@ -5848,6 +5848,7 @@ static int target_create(struct jim_getopt_info *goi)
                free(target->gdb_port_override);
                free(target->trace_info);
                free(target->type);
+               free(target->private_config);
                free(target);
                return e;
        }
@@ -5865,6 +5866,7 @@ static int target_create(struct jim_getopt_info *goi)
                free(target->gdb_port_override);
                free(target->trace_info);
                free(target->type);
+               free(target->private_config);
                free(target);
                return JIM_ERR;
        }
@@ -5878,6 +5880,7 @@ static int target_create(struct jim_getopt_info *goi)
                        free(target->gdb_port_override);
                        free(target->trace_info);
                        free(target->type);
+                       free(target->private_config);
                        free(target);
                        return JIM_ERR;
                }