From d4b3b4ea82ba6d34b050a1cc068e0b105533e2f2 Mon Sep 17 00:00:00 2001 From: Tomas Vanek Date: Tue, 10 Dec 2024 13:48:53 +0100 Subject: [PATCH] target: free private_config if target initialisation fails Fixes private_config memory leak when xx_deinit_target() is not called Signed-off-by: Tomas Vanek Change-Id: Ie7cce7f24af24695e7d2c1cd1882474c6863b80d Reviewed-on: https://review.openocd.org/c/openocd/+/8642 Tested-by: jenkins Reviewed-by: zapb Reviewed-by: Evgeniy Naydanov --- src/target/target.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/target/target.c b/src/target/target.c index 6c474899a..1fc8baf2c 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -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; }