All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gan Qixin <ganqixin@huawei.com>
To: <qemu-arm@nongnu.org>, <qemu-devel@nongnu.org>
Cc: peter.maydell@linaro.org, zhang.zhanghailiang@huawei.com,
	Antony Pavlov <antonynpavlov@gmail.com>,
	Gan Qixin <ganqixin@huawei.com>,
	Euler Robot <euler.robot@huawei.com>,
	kuhn.chenqun@huawei.com
Subject: [PATCH 2/7] digic-timer: Use ptimer_free() in the finalize function to avoid memleaks
Date: Fri, 27 Nov 2020 15:17:58 +0800	[thread overview]
Message-ID: <20201127071803.2479462-3-ganqixin@huawei.com> (raw)
In-Reply-To: <20201127071803.2479462-1-ganqixin@huawei.com>

When running device-introspect-test, a memory leak occurred in the digic_timer_init
function, so use ptimer_free() in the finalize function to avoid it.

ASAN shows memory leak stack:

Indirect leak of 288 byte(s) in 3 object(s) allocated from:
    #0 0xffffab97e1f0 in __interceptor_calloc (/lib64/libasan.so.5+0xee1f0)
    #1 0xffffab256800 in g_malloc0 (/lib64/libglib-2.0.so.0+0x56800)
    #2 0xaaabf555db78 in ptimer_init /qemu/hw/core/ptimer.c:432
    #3 0xaaabf5b04084 in digic_timer_init /qemu/hw/timer/digic-timer.c:142
    #4 0xaaabf6339f6c in object_initialize_with_type /qemu/qom/object.c:515
    #5 0xaaabf633ca04 in object_initialize_child_with_propsv /qemu/qom/object.c:564
    #6 0xaaabf633cc08 in object_initialize_child_with_props /qemu/qom/object.c:547
    #7 0xaaabf5b40e84 in digic_init /qemu/hw/arm/digic.c:46
    #8 0xaaabf6339f6c in object_initialize_with_type /qemu/qom/object.c:515
    #9 0xaaabf633a1e0 in object_new_with_type /qemu/qom/object.c:729
    #10 0xaaabf6375e40 in qmp_device_list_properties /qemu/qom/qom-qmp-cmds.c:153
    #11 0xaaabf653d8ec in qmp_marshal_device_list_properties /qemu/qapi/qapi-commands-qdev.c:59
    #12 0xaaabf6587d08 in do_qmp_dispatch_bh /qemu/qapi/qmp-dispatch.c:110

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Gan Qixin <ganqixin@huawei.com>
---
Cc: Antony Pavlov <antonynpavlov@gmail.com>
---
 hw/timer/digic-timer.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/hw/timer/digic-timer.c b/hw/timer/digic-timer.c
index 32612228da..86075987fb 100644
--- a/hw/timer/digic-timer.c
+++ b/hw/timer/digic-timer.c
@@ -154,6 +154,13 @@ static void digic_timer_init(Object *obj)
     sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->iomem);
 }
 
+static void digic_timer_finalize(Object *obj)
+{
+    DigicTimerState *s = DIGIC_TIMER(obj);
+
+    ptimer_free(s->ptimer);
+}
+
 static void digic_timer_class_init(ObjectClass *klass, void *class_data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
@@ -163,11 +170,12 @@ static void digic_timer_class_init(ObjectClass *klass, void *class_data)
 }
 
 static const TypeInfo digic_timer_info = {
-    .name = TYPE_DIGIC_TIMER,
-    .parent = TYPE_SYS_BUS_DEVICE,
-    .instance_size = sizeof(DigicTimerState),
-    .instance_init = digic_timer_init,
-    .class_init = digic_timer_class_init,
+    .name              = TYPE_DIGIC_TIMER,
+    .parent            = TYPE_SYS_BUS_DEVICE,
+    .instance_size     = sizeof(DigicTimerState),
+    .instance_init     = digic_timer_init,
+    .instance_finalize = digic_timer_finalize,
+    .class_init        = digic_timer_class_init,
 };
 
 static void digic_timer_register_type(void)
-- 
2.23.0



  parent reply	other threads:[~2020-11-27  7:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-27  7:17 [PATCH 0/7] Fix some memleaks caused by ptimer_init Gan Qixin
2020-11-27  7:17 ` [PATCH 1/7] allwinner-a10-pit: Use ptimer_free() in the finalize function to avoid memleaks Gan Qixin
2020-12-14 16:02   ` Peter Maydell
2020-12-14 16:20     ` Peter Maydell
2020-12-15  2:38       ` ganqixin
2020-12-15 11:35         ` Peter Maydell
2020-11-27  7:17 ` Gan Qixin [this message]
2020-11-27  7:17 ` [PATCH 3/7] exynos4210_mct: " Gan Qixin
2020-11-27  7:18 ` [PATCH 4/7] exynos4210_pwm: " Gan Qixin
2020-11-27  7:18 ` [PATCH 5/7] exynos4210_rtc: " Gan Qixin
2020-11-27  7:18 ` [PATCH 6/7] mss-timer: " Gan Qixin
2020-11-27  7:18 ` [PATCH 7/7] musicpal: " Gan Qixin
2020-12-09  8:07 ` [PATCH 0/7] Fix some memleaks caused by ptimer_init ganqixin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201127071803.2479462-3-ganqixin@huawei.com \
    --to=ganqixin@huawei.com \
    --cc=antonynpavlov@gmail.com \
    --cc=euler.robot@huawei.com \
    --cc=kuhn.chenqun@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=zhang.zhanghailiang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.