[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-riscv] [PULL] riscv: spike: Fix memory leak in the board init
From: |
Palmer Dabbelt |
Subject: |
[Qemu-riscv] [PULL] riscv: spike: Fix memory leak in the board init |
Date: |
Thu, 8 Nov 2018 10:33:06 -0800 |
From: Alistair Francis <address@hidden>
Coverity caught a malloc() call that was never freed. This patch ensures
that we free the memory but also updates the allocation to use
g_strdup_printf() instead of malloc().
Signed-off-by: Alistair Francis <address@hidden>
Suggested-by: Peter Maydell <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Palmer Dabbelt <address@hidden>
Signed-off-by: Palmer Dabbelt <address@hidden>
---
hw/riscv/spike.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
index 8a712ed49026..268df04c3c7d 100644
--- a/hw/riscv/spike.c
+++ b/hw/riscv/spike.c
@@ -316,9 +316,7 @@ static void spike_v1_09_1_board_init(MachineState *machine)
/* build config string with supplied memory size */
char *isa = riscv_isa_string(&s->soc.harts[0]);
- size_t config_string_size = strlen(config_string_tmpl) + 48;
- char *config_string = malloc(config_string_size);
- snprintf(config_string, config_string_size, config_string_tmpl,
+ char *config_string = g_strdup_printf(config_string_tmpl,
(uint64_t)memmap[SPIKE_CLINT].base + SIFIVE_TIME_BASE,
(uint64_t)memmap[SPIKE_DRAM].base,
(uint64_t)ram_size, isa,
@@ -345,6 +343,8 @@ static void spike_v1_09_1_board_init(MachineState *machine)
/* Core Local Interruptor (timer and IPI) */
sifive_clint_create(memmap[SPIKE_CLINT].base, memmap[SPIKE_CLINT].size,
smp_cpus, SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE);
+
+ g_free(config_string);
}
static void spike_v1_09_1_machine_init(MachineClass *mc)
--
2.18.1