diff options
author | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-08-24 07:53:46 +0000 |
---|---|---|
committer | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2009-08-24 07:53:46 +0000 |
commit | bf5f21e39a6c04c3845dc61becc90d8602546290 (patch) | |
tree | 49de21fa0af834ac6b91bfde83280e87ae24d318 /src/target | |
parent | 332c8d78d8007e810380d4d0d13a4d47b8fb4d52 (diff) | |
download | openocd_libswd-bf5f21e39a6c04c3845dc61becc90d8602546290.tar.gz openocd_libswd-bf5f21e39a6c04c3845dc61becc90d8602546290.tar.bz2 openocd_libswd-bf5f21e39a6c04c3845dc61becc90d8602546290.tar.xz openocd_libswd-bf5f21e39a6c04c3845dc61becc90d8602546290.zip |
Steve Grubb <sgrubb@redhat.com> fix various and sundry leaks
git-svn-id: svn://svn.berlios.de/openocd/trunk@2606 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target')
-rw-r--r-- | src/target/embeddedice.c | 1 | ||||
-rw-r--r-- | src/target/etm.c | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/target/embeddedice.c b/src/target/embeddedice.c index 1e003471..0d23c121 100644 --- a/src/target/embeddedice.c +++ b/src/target/embeddedice.c @@ -197,6 +197,7 @@ reg_cache_t* embeddedice_build_reg_cache(target_t *target, arm7_9_common_t *arm7 free(reg_list[i].value); } free(reg_list); + free(reg_cache); free(arch_info); return NULL; } diff --git a/src/target/etm.c b/src/target/etm.c index 48d2ebaf..2623ebe5 100644 --- a/src/target/etm.c +++ b/src/target/etm.c @@ -246,6 +246,12 @@ reg_cache_t* etm_build_reg_cache(target_t *target, arm_jtag_t *jtag_info, etm_co if (!etb) { LOG_ERROR("etb selected as etm capture driver, but no ETB configured"); + for (i = 0; i < num_regs; i++) + { + free(reg_list[i].value); + } + free(reg_cache); + free(arch_info); return ERROR_OK; } @@ -1202,6 +1208,7 @@ static int handle_etm_config_command(struct command_context_s *cmd_ctx, char *cm if (argc != 5) { + free(etm_ctx); return ERROR_COMMAND_SYNTAX_ERROR; } @@ -1209,12 +1216,14 @@ static int handle_etm_config_command(struct command_context_s *cmd_ctx, char *cm if (!target) { LOG_ERROR("target '%s' not defined", args[0]); + free(etm_ctx); return ERROR_FAIL; } if (arm7_9_get_arch_pointers(target, &armv4_5, &arm7_9) != ERROR_OK) { command_print(cmd_ctx, "current target isn't an ARM7/ARM9 target"); + free(etm_ctx); return ERROR_FAIL; } @@ -1231,6 +1240,7 @@ static int handle_etm_config_command(struct command_context_s *cmd_ctx, char *cm break; default: command_print(cmd_ctx, "unsupported ETM port width '%s', must be 4, 8 or 16", args[1]); + free(etm_ctx); return ERROR_FAIL; } @@ -1249,6 +1259,7 @@ static int handle_etm_config_command(struct command_context_s *cmd_ctx, char *cm else { command_print(cmd_ctx, "unsupported ETM port mode '%s', must be 'normal', 'multiplexed' or 'demultiplexed'", args[2]); + free(etm_ctx); return ERROR_FAIL; } @@ -1263,6 +1274,7 @@ static int handle_etm_config_command(struct command_context_s *cmd_ctx, char *cm else { command_print(cmd_ctx, "unsupported ETM port clocking '%s', must be 'full' or 'half'", args[3]); + free(etm_ctx); return ERROR_FAIL; } |