aboutsummaryrefslogtreecommitdiff
path: root/src/flash/nor
diff options
context:
space:
mode:
authorSpencer Oliver <spen@spen-soft.co.uk>2012-08-13 11:31:54 +0100
committerFreddie Chopin <freddie.chopin@gmail.com>2012-08-24 16:50:18 +0000
commit2d57e80801b605833118e133c79a97b67ace7e93 (patch)
tree1f76b2270e69387f6161ebe0e1da5eecbe2bbb62 /src/flash/nor
parent60a932b36804bff8b6ca40adc665a33a59475db1 (diff)
downloadriscv-openocd-2d57e80801b605833118e133c79a97b67ace7e93.zip
riscv-openocd-2d57e80801b605833118e133c79a97b67ace7e93.tar.gz
riscv-openocd-2d57e80801b605833118e133c79a97b67ace7e93.tar.bz2
tcl: fix potential memory leaks
Reorder to allocate all memory after COMMAND_PARSE_NUMBER call. This removes a clang warning about un-released memory Change-Id: I8dbeb664a6467077157015bd879bc0aefc5e8614 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/776 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Diffstat (limited to 'src/flash/nor')
-rw-r--r--src/flash/nor/tcl.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index ec80f6f..cf6fa08 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -427,16 +427,7 @@ COMMAND_HANDLER(handle_flash_fill_command)
int retval = ERROR_OK;
static size_t const chunksize = 1024;
- uint8_t *chunk = malloc(chunksize);
- if (chunk == NULL)
- return ERROR_FAIL;
-
- uint8_t *readback = malloc(chunksize);
- if (readback == NULL) {
- free(chunk);
- return ERROR_FAIL;
- }
-
+ uint8_t *chunk = NULL, *readback = NULL;
if (CMD_ARGC != 3) {
retval = ERROR_COMMAND_SYNTAX_ERROR;
@@ -447,6 +438,16 @@ COMMAND_HANDLER(handle_flash_fill_command)
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], pattern);
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], count);
+ chunk = malloc(chunksize);
+ if (chunk == NULL)
+ return ERROR_FAIL;
+
+ readback = malloc(chunksize);
+ if (readback == NULL) {
+ free(chunk);
+ return ERROR_FAIL;
+ }
+
if (count == 0)
goto done;