hw/alpha/dp264.c: Fix memory leak spotted by valgrind

valgrind complains about:
==7055== 58 bytes in 1 blocks are definitely lost in loss record 1,471 of 2,192
==7055==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7055==    by 0x24410F: malloc_and_trace (vl.c:2556)
==7055==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
==7055==    by 0x64DEFD7: g_strndup (in /usr/lib64/libglib-2.0.so.0.3600.3)
==7055==    by 0x650181A: g_vasprintf (in /usr/lib64/libglib-2.0.so.0.3600.3)
==7055==    by 0x64DF0CC: g_strdup_vprintf (in /usr/lib64/libglib-2.0.so.0.3600.3)
==7055==    by 0x64DF188: g_strdup_printf (in /usr/lib64/libglib-2.0.so.0.3600.3)
==7055==    by 0x242F81: qemu_find_file (vl.c:2121)
==7055==    by 0x217A32: clipper_init (dp264.c:105)
==7055==    by 0x2484DA: main (vl.c:4249)

Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
Shannon Zhao 2015-05-28 20:39:42 +08:00 committed by Michael Tokarev
parent bd4baf6eeb
commit c18f855697

View File

@ -55,7 +55,7 @@ static void clipper_init(MachineState *machine)
ISABus *isa_bus; ISABus *isa_bus;
qemu_irq rtc_irq; qemu_irq rtc_irq;
long size, i; long size, i;
const char *palcode_filename; char *palcode_filename;
uint64_t palcode_entry, palcode_low, palcode_high; uint64_t palcode_entry, palcode_low, palcode_high;
uint64_t kernel_entry, kernel_low, kernel_high; uint64_t kernel_entry, kernel_low, kernel_high;
@ -101,8 +101,8 @@ static void clipper_init(MachineState *machine)
/* Load PALcode. Given that this is not "real" cpu palcode, /* Load PALcode. Given that this is not "real" cpu palcode,
but one explicitly written for the emulation, we might as but one explicitly written for the emulation, we might as
well load it directly from and ELF image. */ well load it directly from and ELF image. */
palcode_filename = (bios_name ? bios_name : "palcode-clipper"); palcode_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS,
palcode_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, palcode_filename); bios_name ? bios_name : "palcode-clipper");
if (palcode_filename == NULL) { if (palcode_filename == NULL) {
hw_error("no palcode provided\n"); hw_error("no palcode provided\n");
exit(1); exit(1);
@ -114,6 +114,7 @@ static void clipper_init(MachineState *machine)
hw_error("could not load palcode '%s'\n", palcode_filename); hw_error("could not load palcode '%s'\n", palcode_filename);
exit(1); exit(1);
} }
g_free(palcode_filename);
/* Start all cpus at the PALcode RESET entry point. */ /* Start all cpus at the PALcode RESET entry point. */
for (i = 0; i < smp_cpus; ++i) { for (i = 0; i < smp_cpus; ++i) {