From 6e6f90d1af601af0f6079f19f603a9a3a6e83da1 Mon Sep 17 00:00:00 2001 From: Michele Sardo Date: Thu, 22 Mar 2018 12:02:19 +0100 Subject: [PATCH] Fix for warnings detected by clang static analyzer Fix for potential memory leakage and for unused/unreported return error code Change-Id: Ifb2c95b60637c3a241ad4bf41d1a328c92ccea4b Signed-off-by: Michele Sardo Reviewed-on: http://openocd.zylin.com/4476 Tested-by: jenkins Reviewed-by: Tomas Vanek --- src/flash/nor/bluenrg-x.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/flash/nor/bluenrg-x.c b/src/flash/nor/bluenrg-x.c index c4a8080476..2b568593ac 100644 --- a/src/flash/nor/bluenrg-x.c +++ b/src/flash/nor/bluenrg-x.c @@ -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(®_params[2]); destroy_reg_param(®_params[3]); destroy_reg_param(®_params[4]); + if (retval != ERROR_OK) + return retval; + } /* Program chunk at end, not addressable by fast burst write algorithm */ -- 2.30.2