[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for 2.10 22/35] arm/vexpress: fix potential memo
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH for 2.10 22/35] arm/vexpress: fix potential memory leak |
Date: |
Mon, 24 Jul 2017 22:11:25 +0100 |
On 24 July 2017 at 19:27, Philippe Mathieu-Daudé <address@hidden> wrote:
> Reorder to only allocate if required.
>
> hw/arm/vexpress.c:667:13: warning: Potential leak of memory pointed to by
> 'flashalias'
>
> Reported-by: Clang Static Analyzer
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> hw/arm/vexpress.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
> index 528c65ddb6..76c4d84482 100644
> --- a/hw/arm/vexpress.c
> +++ b/hw/arm/vexpress.c
> @@ -553,8 +553,6 @@ static void vexpress_common_init(MachineState *machine)
> MemoryRegion *sysmem = get_system_memory();
> MemoryRegion *vram = g_new(MemoryRegion, 1);
> MemoryRegion *sram = g_new(MemoryRegion, 1);
> - MemoryRegion *flashalias = g_new(MemoryRegion, 1);
> - MemoryRegion *flash0mem;
> const hwaddr *map = daughterboard->motherboard_map;
> int i;
>
> @@ -657,6 +655,9 @@ static void vexpress_common_init(MachineState *machine)
> }
>
> if (map[VE_NORFLASHALIAS] != -1) {
> + MemoryRegion *flashalias = g_new(MemoryRegion, 1);
> + MemoryRegion *flash0mem;
> +
> /* Map flash 0 as an alias into low memory */
> flash0mem = sysbus_mmio_get_region(SYS_BUS_DEVICE(pflash0), 0);
> memory_region_init_alias(flashalias, NULL, "vexpress.flashalias",
> --
> 2.13.3
flashalias is no different from any of the other MemoryRegion*
variables we allocate here with g_new() -- they all
leak, and it doesn't matter because the function
runs once and we want the MemoryRegions to survive
until the end of the simulation.
These days we could in theory clean this up by
switching from doing g_new() to having a set of
MemoryRegion fields in the VexpressMachineState
struct (compare hw/arm/mps2.c).
thanks
-- PMM
- [Qemu-devel] [PATCH for 2.10 20/35] arm/boot: fix undefined instruction on secondary smp cpu bootloader, (continued)
[Qemu-devel] [PATCH for 2.10 22/35] arm/vexpress: fix potential memory leak, Philippe Mathieu-Daudé, 2017/07/24
- Re: [Qemu-devel] [PATCH for 2.10 22/35] arm/vexpress: fix potential memory leak,
Peter Maydell <=
[Qemu-devel] [PATCH for 2.10 23/35] m68k/translate: fix incorrect copy/paste, Philippe Mathieu-Daudé, 2017/07/24
[Qemu-devel] [PATCH for 2.10 24/35] linux-user/sh4: fix incorrect memory write, Philippe Mathieu-Daudé, 2017/07/24
[Qemu-devel] [PATCH for 2.10 25/35] linux-user: extract is_error() out of syscall.c, Philippe Mathieu-Daudé, 2017/07/24