hw/avr/boot: Fix memory leak in avr_load_firmware()
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>
Tue, 14 Jul 2020 16:15:05 +0000 (18:15 +0200)
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>
Tue, 21 Jul 2020 14:13:04 +0000 (16:13 +0200)
The value returned by qemu_find_file() must be freed.

This fixes Coverity issue CID 1430449, which points out
that the memory returned by qemu_find_file() is leaked.

Fixes: Coverity CID 1430449 (RESOURCE_LEAK)
Fixes: 7dd8f6fde4 ('hw/avr: Add support for loading ELF/raw binaries')
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Michael Rolnik <mrolnik@gmail.com>
Tested-by: Michael Rolnik <mrolnik@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200714164257.23330-5-f4bug@amsat.org>

hw/avr/boot.c

index 6fbcde40619ee804b3f2516d6016c2a429c3bf32..d16bb3dbe1bcc18f15b70725b55e40ee2797942e 100644 (file)
@@ -60,7 +60,7 @@ static const char *avr_elf_e_flags_to_cpu_type(uint32_t flags)
 bool avr_load_firmware(AVRCPU *cpu, MachineState *ms,
                        MemoryRegion *program_mr, const char *firmware)
 {
-    const char *filename;
+    g_autofree char *filename = NULL;
     int bytes_loaded;
     uint64_t entry;
     uint32_t e_flags;