From: Paul Fertser Date: Fri, 17 Jan 2014 10:06:51 +0000 (+0400) Subject: flash/nor/mdr.c: fix uninitialised variable warning X-Git-Tag: v0.8.0-rc1~94 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=facd0e7827926d0639260be40e9cc4c595794194;p=openocd flash/nor/mdr.c: fix uninitialised variable warning Caught (actually, it's breaking the build) by clang 3.3. Change-Id: Ife6fabf8a57e6c90ab45aaaf75557c984ac6772c Signed-off-by: Paul Fertser Reviewed-on: http://openocd.zylin.com/1875 Tested-by: jenkins Reviewed-by: Spencer Oliver --- diff --git a/src/flash/nor/mdr.c b/src/flash/nor/mdr.c index 3ecee1c8..650abfd6 100644 --- a/src/flash/nor/mdr.c +++ b/src/flash/nor/mdr.c @@ -159,7 +159,7 @@ static int mdr_erase(struct flash_bank *bank, int first, int last) retval = target_write_u32(target, FLASH_KEY, KEY); if (retval != ERROR_OK) - goto reset_pg_and_lock; + return retval; retval = target_read_u32(target, FLASH_CMD, &flash_cmd); if (retval != ERROR_OK) @@ -353,21 +353,22 @@ static int mdr_write(struct flash_bank *bank, uint8_t *buffer, retval = target_read_u32(target, MD_PER_CLOCK, &cur_per_clock); if (retval != ERROR_OK) - return retval; + goto free_buffer; if (!(cur_per_clock & MD_PER_CLOCK_RST_CLK)) { /* Something's very wrong if the RST_CLK module is not clocked */ LOG_ERROR("Target needs reset before flash operations"); - return ERROR_FLASH_OPERATION_FAILED; + retval = ERROR_FLASH_OPERATION_FAILED; + goto free_buffer; } retval = target_write_u32(target, MD_PER_CLOCK, cur_per_clock | MD_PER_CLOCK_EEPROM); if (retval != ERROR_OK) - return retval; + goto free_buffer; retval = target_write_u32(target, FLASH_KEY, KEY); if (retval != ERROR_OK) - goto reset_pg_and_lock; + goto free_buffer; retval = target_read_u32(target, FLASH_CMD, &flash_cmd); if (retval != ERROR_OK) @@ -466,6 +467,7 @@ reset_pg_and_lock: if (retval == ERROR_OK) retval = retval2; +free_buffer: if (new_buffer) free(new_buffer);