dummyflasher.c: Don't leak `emu_persistent_image`

Ensure `emu_persistent_image` doesn't end up leaking memory.

Change-Id: I76529973cefcc6a1472681e1f4da8239fcbf07a6
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54905
Original-Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71361
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/dummyflasher.c b/dummyflasher.c
index 86f6968..4ed5301 100644
--- a/dummyflasher.c
+++ b/dummyflasher.c
@@ -144,9 +144,8 @@
 			write_buf_to_file(emu_data->flashchip_contents,
 					  emu_data->emu_chip_size,
 					  emu_data->emu_persistent_image);
-			free(emu_data->emu_persistent_image);
-			emu_data->emu_persistent_image = NULL;
 		}
+		free(emu_data->emu_persistent_image);
 		free(emu_data->flashchip_contents);
 	}
 #endif
@@ -410,6 +409,7 @@
 			if (read_buf_from_file(data->flashchip_contents, data->emu_chip_size,
 					   data->emu_persistent_image)) {
 				msg_perr("Unable to read %s\n", data->emu_persistent_image);
+				free(data->emu_persistent_image);
 				free(data->flashchip_contents);
 				return 1;
 			}
@@ -421,6 +421,7 @@
 
 dummy_init_out:
 	if (register_shutdown(dummy_shutdown, data)) {
+		free(data->emu_persistent_image);
 		free(data->flashchip_contents);
 		free(data);
 		return 1;