diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2020-05-22 18:08:55 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2020-06-06 18:05:08 +0100 |
commit | 061cae171c9d2b6015a565dcc748dd04319e08cf (patch) | |
tree | dd30bd560ec1e39cec98829352ab0f5e15b9dee4 /src | |
parent | f6b4079ce5793f86b2c26c6bfcc8c717e2c8a3c3 (diff) | |
download | riscv-openocd-061cae171c9d2b6015a565dcc748dd04319e08cf.zip riscv-openocd-061cae171c9d2b6015a565dcc748dd04319e08cf.tar.gz riscv-openocd-061cae171c9d2b6015a565dcc748dd04319e08cf.tar.bz2 |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/target/mem_ap.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/target/mem_ap.c b/src/target/mem_ap.c index 29cd37a..ade48b6 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, |