diff mbox series

ppc/e500: Free irqs array to avoid memleak

Message ID 20201204075822.359832-1-ganqixin@huawei.com (mailing list archive)
State New, archived
Headers show
Series ppc/e500: Free irqs array to avoid memleak | expand

Commit Message

Gan Qixin Dec. 4, 2020, 7:58 a.m. UTC
When running qom-test, a memory leak occurred in the ppce500_init function,
this patch free irqs array to fix it.

ASAN shows memory leak stack:

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0xfffc5ceee1f0 in __interceptor_calloc (/lib64/libasan.so.5+0xee1f0)
    #1 0xfffc5c806800 in g_malloc0 (/lib64/libglib-2.0.so.0+0x56800)
    #2 0xaaacf9999244 in ppce500_init qemu/hw/ppc/e500.c:859
    #3 0xaaacf97434e8 in machine_run_board_init qemu/hw/core/machine.c:1134
    #4 0xaaacf9c9475c in qemu_init qemu/softmmu/vl.c:4369
    #5 0xaaacf94785a0 in main qemu/softmmu/main.c:49

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Gan Qixin <ganqixin@huawei.com>
---
Cc: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/e500.c | 1 +
 1 file changed, 1 insertion(+)

Comments

David Gibson Dec. 5, 2020, 9:53 a.m. UTC | #1
On Fri, Dec 04, 2020 at 03:58:22PM +0800, Gan Qixin wrote:
> When running qom-test, a memory leak occurred in the ppce500_init function,
> this patch free irqs array to fix it.
> 
> ASAN shows memory leak stack:
> 
> Direct leak of 40 byte(s) in 1 object(s) allocated from:
>     #0 0xfffc5ceee1f0 in __interceptor_calloc (/lib64/libasan.so.5+0xee1f0)
>     #1 0xfffc5c806800 in g_malloc0 (/lib64/libglib-2.0.so.0+0x56800)
>     #2 0xaaacf9999244 in ppce500_init qemu/hw/ppc/e500.c:859
>     #3 0xaaacf97434e8 in machine_run_board_init qemu/hw/core/machine.c:1134
>     #4 0xaaacf9c9475c in qemu_init qemu/softmmu/vl.c:4369
>     #5 0xaaacf94785a0 in main qemu/softmmu/main.c:49
> 
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Gan Qixin <ganqixin@huawei.com>

Applied to ppc-for-6.0, thanks.

> ---
> Cc: David Gibson <david@gibson.dropbear.id.au>
> ---
>  hw/ppc/e500.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
> index ae39b9358e..74f33af88e 100644
> --- a/hw/ppc/e500.c
> +++ b/hw/ppc/e500.c
> @@ -925,6 +925,7 @@ void ppce500_init(MachineState *machine)
>                                  ccsr_addr_space);
>  
>      mpicdev = ppce500_init_mpic(pms, ccsr_addr_space, irqs);
> +    g_free(irqs);
>  
>      /* Serial */
>      if (serial_hd(0)) {
diff mbox series

Patch

diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index ae39b9358e..74f33af88e 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -925,6 +925,7 @@  void ppce500_init(MachineState *machine)
                                 ccsr_addr_space);
 
     mpicdev = ppce500_init_mpic(pms, ccsr_addr_space, irqs);
+    g_free(irqs);
 
     /* Serial */
     if (serial_hd(0)) {