From f5cc8360fdf4c004c9efa2132645f9319ceef49d Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Mon, 25 May 2020 11:19:07 +0200 Subject: [PATCH] target/arm720t: fix memory leak of register cache There is no method to free the register cache, allocated in arm720t_init_target(). Issue identified by tracking all calls to arm7tdmi_init_target(). Implement the method arm720t_deinit_target() by calling directly arm7tdmi_deinit_target(). NOT TESTED on a real arm720t target. Tested on a arm926ejs (SPEAr320) by hacking the target type and pretending it is a xscale: sed -i s/arm926ejs/arm720t/ tcl/target/spear3xx.cfg Change-Id: I53c1f46c1a355a710e8df01468b19220671569dc Signed-off-by: Antonio Borneo Reviewed-on: http://openocd.zylin.com/5697 Tested-by: jenkins --- src/target/arm720t.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/target/arm720t.c b/src/target/arm720t.c index abe5f1cea0..e04cab2e79 100644 --- a/src/target/arm720t.c +++ b/src/target/arm720t.c @@ -391,6 +391,11 @@ static int arm720t_init_target(struct command_context *cmd_ctx, struct target *t return arm7tdmi_init_target(cmd_ctx, target); } +static void arm720t_deinit_target(struct target *target) +{ + arm7tdmi_deinit_target(target); +} + /* FIXME remove forward decls */ static int arm720t_mrc(struct target *target, int cpnum, uint32_t op1, uint32_t op2, @@ -583,6 +588,7 @@ struct target_type arm720t_target = { .commands = arm720t_command_handlers, .target_create = arm720t_target_create, .init_target = arm720t_init_target, + .deinit_target = arm720t_deinit_target, .examine = arm7_9_examine, .check_reset = arm7_9_check_reset, }; -- 2.30.2