]> git.sur5r.net Git - openocd/blobdiff - src/flash/nor/lpc2000.c
flash/nor/lpc2000: free allocated working area when target_write fails
[openocd] / src / flash / nor / lpc2000.c
index 15d9eb81c5c4ff29324124199fd33455946195fe..0247e66df34fde4aec9b0999ab68e18b6bffb8ab 100644 (file)
@@ -679,9 +679,11 @@ static int lpc2000_iap_working_area_init(struct flash_bank *bank, struct working
        }
 
        int retval = target_write_memory(target, (*iap_working_area)->address, 4, 2, jump_gate);
-       if (retval != ERROR_OK)
+       if (retval != ERROR_OK) {
                LOG_ERROR("Write memory at address 0x%8.8" PRIx32 " failed (check work_area definition)",
                                (*iap_working_area)->address);
+               target_free_working_area(target, *iap_working_area);
+       }
 
        return retval;
 }