]> git.sur5r.net Git - openocd/commitdiff
Fix for warnings detected by clang static analyzer
authorMichele Sardo <msmttchr@gmail.com>
Thu, 22 Mar 2018 11:02:19 +0000 (12:02 +0100)
committerTomas Vanek <vanekt@fbl.cz>
Wed, 4 Apr 2018 20:23:57 +0000 (21:23 +0100)
Fix for potential memory leakage and for unused/unreported return error code

Change-Id: Ifb2c95b60637c3a241ad4bf41d1a328c92ccea4b
Signed-off-by: Michele Sardo <msmttchr@gmail.com>
Reviewed-on: http://openocd.zylin.com/4476
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/flash/nor/bluenrg-x.c

index c4a8080476d5d4729a051afb9afb20bc694eb9d7..2b568593ace5f18302790b9769f1b566b7eba291 100644 (file)
@@ -274,6 +274,7 @@ static int bluenrgx_write_bytes(struct target *target, uint32_t address_base, ui
                if (pre_bytes) {
                        if (target_read_u32(target, pre_address, &pre_word)) {
                                LOG_ERROR("Memory read failed");
+                               free(new_buffer);
                                return ERROR_FAIL;
                        }
 
@@ -282,6 +283,7 @@ static int bluenrgx_write_bytes(struct target *target, uint32_t address_base, ui
                if (post_bytes) {
                        if (target_read_u32(target, post_address, &post_word)) {
                                LOG_ERROR("Memory read failed");
+                               free(new_buffer);
                                return ERROR_FAIL;
                        }
 
@@ -450,6 +452,9 @@ static int bluenrgx_write(struct flash_bank *bank, const uint8_t *buffer,
                destroy_reg_param(&reg_params[2]);
                destroy_reg_param(&reg_params[3]);
                destroy_reg_param(&reg_params[4]);
+               if (retval != ERROR_OK)
+                       return retval;
+
        }
 
        /* Program chunk at end, not addressable by fast burst write algorithm */