From: Andreas Färber Date: Sun, 8 May 2016 14:46:03 +0000 (+0200) Subject: armv7m: Improve armv7m_blank_check_memory() error handling X-Git-Tag: v0.10.0-rc1~190 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4f2cc02d2761d13aa421c363fe4dc462a51628c6;p=openocd armv7m: Improve armv7m_blank_check_memory() error handling Clean up the working area in case writing fails. Adapted from armv7m_checksum_memory(). Change-Id: I4e5950f568ed70a72a1dcfd77e3321110b17e1de Signed-off-by: Andreas Färber Reviewed-on: http://openocd.zylin.com/3469 Tested-by: jenkins Reviewed-by: Tomas Vanek --- diff --git a/src/target/armv7m.c b/src/target/armv7m.c index 52b394cf..8662003e 100644 --- a/src/target/armv7m.c +++ b/src/target/armv7m.c @@ -781,7 +781,7 @@ int armv7m_blank_check_memory(struct target *target, retval = target_write_buffer(target, erase_check_algorithm->address, sizeof(erase_check_code), (uint8_t *)erase_check_code); if (retval != ERROR_OK) - return retval; + goto cleanup; armv7m_info.common_magic = ARMV7M_COMMON_MAGIC; armv7m_info.core_mode = ARM_MODE_THREAD; @@ -812,6 +812,7 @@ int armv7m_blank_check_memory(struct target *target, destroy_reg_param(®_params[1]); destroy_reg_param(®_params[2]); +cleanup: target_free_working_area(target, erase_check_algorithm); return retval;