contrib/elf2dmp: Always destroy PA space
authorAkihiko Odaki <akihiko.odaki@daynix.com>
Thu, 7 Mar 2024 10:20:54 +0000 (19:20 +0900)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 11 Mar 2024 17:06:06 +0000 (17:06 +0000)
Destroy PA space even if paging base couldn't be found, fixing memory
leak.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Viktor Prutyanov <viktor.prutyanov@phystech.edu>
Message-id: 20240307-elf2dmp-v4-11-4f324ad4d99d@daynix.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
contrib/elf2dmp/main.c

index 9347b0cd5a2d0adf779d67b82ee672cad197a7cf..32dc8bac6a30861085cef97a67000521b3f54a2c 100644 (file)
@@ -549,7 +549,7 @@ int main(int argc, char *argv[])
     va_space_create(&vs, &ps, state->cr[3]);
     if (!fix_dtb(&vs, &qemu_elf)) {
         eprintf("Failed to find paging base\n");
-        goto out_elf;
+        goto out_ps;
     }
 
     printf("CPU #0 IDT is at 0x%016"PRIx64"\n", state->idt.base);
@@ -634,7 +634,6 @@ out_pdb_file:
     unlink(PDB_NAME);
 out_ps:
     pa_space_destroy(&ps);
-out_elf:
     QEMU_Elf_exit(&qemu_elf);
 
     return err;