]> git.sur5r.net Git - openocd/blobdiff - src/flash/nor/stm32h7x.c
flash/nor/stm32: Eliminate working area leak
[openocd] / src / flash / nor / stm32h7x.c
index 8f34e0475158a9da5df5dfbd147a09817d750641..f2ddaf44730d0a3da5da4cf58f55df395de87f15 100644 (file)
@@ -583,8 +583,10 @@ static int stm32x_write_block(struct flash_bank *bank, const uint8_t *buffer,
        retval = target_write_buffer(target, write_algorithm->address,
                        sizeof(stm32x_flash_write_code),
                        stm32x_flash_write_code);
-       if (retval != ERROR_OK)
+       if (retval != ERROR_OK) {
+               target_free_working_area(target, write_algorithm);
                return retval;
+       }
 
        /* memory buffer */
        while (target_alloc_working_area_try(target, buffer_size, &source) != ERROR_OK) {