aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2020-05-22 18:08:55 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2020-06-06 18:05:08 +0100
commit061cae171c9d2b6015a565dcc748dd04319e08cf (patch)
treedd30bd560ec1e39cec98829352ab0f5e15b9dee4
parentf6b4079ce5793f86b2c26c6bfcc8c717e2c8a3c3 (diff)
downloadopenocd-jz4730-061cae171c9d2b6015a565dcc748dd04319e08cf.tar.gz
target/mem_ap: fix two memory leaks
The target mem_ap misses the method 'deinit_target' and does not free the memory allocated during 'target create' and 'configure'. Add the missing method and free the allocated memory. Issue identified with valgrind. Change-Id: If0d0114a75dd76a8b65c2d46d96c6085fd31a09d Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/5700 Tested-by: jenkins
-rw-r--r--src/target/mem_ap.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/target/mem_ap.c b/src/target/mem_ap.c
index 29cd37a90..ade48b6d7 100644
--- a/src/target/mem_ap.c
+++ b/src/target/mem_ap.c
@@ -65,6 +65,15 @@ static int mem_ap_init_target(struct command_context *cmd_ctx, struct target *ta
return ERROR_OK;
}
+static void mem_ap_deinit_target(struct target *target)
+{
+ LOG_DEBUG("%s", __func__);
+
+ free(target->private_config);
+ free(target->arch_info);
+ return;
+}
+
static int mem_ap_arch_state(struct target *target)
{
LOG_DEBUG("%s", __func__);
@@ -169,6 +178,7 @@ struct target_type mem_ap_target = {
.target_create = mem_ap_target_create,
.init_target = mem_ap_init_target,
+ .deinit_target = mem_ap_deinit_target,
.examine = mem_ap_examine,
.target_jim_configure = adiv5_jim_configure,