]> git.sur5r.net Git - openocd/blobdiff - src/flash/nor/tcl.c
tcl: fix potential memory leaks
[openocd] / src / flash / nor / tcl.c
index ec80f6ff6428f6e374c3f3ccce6b25aeb971d4cb..cf6fa080377bbb2f727d984ab35c2a175335e242 100644 (file)
@@ -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;