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
This commit is contained in:
Antonio Borneo 2020-05-22 18:08:55 +02:00
parent f6b4079ce5
commit 061cae171c
1 changed files with 10 additions and 0 deletions

View File

@ -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,