* [PATCH V2] throttle-groups: fix memory leak in throttle_group_set_limit:
@ 2019-11-27 6:20 pannengyuan
2019-11-27 12:28 ` Max Reitz
0 siblings, 1 reply; 2+ messages in thread
From: pannengyuan @ 2019-11-27 6:20 UTC (permalink / raw)
To: berto, kwolf, mreitz
Cc: liyiting, zhang.zhanghailiang, qemu-block, PanNengyuan,
qemu-devel, kuhn.chenqun
From: PanNengyuan <pannengyuan@huawei.com>
This avoid a memory leak when qom-set is called to set throttle_group
limits, here is an easy way to reproduce:
1. run qemu-iotests as follow and check the result with asan:
./check -qcow2 184
Following is the asan output backtrack:
Direct leak of 912 byte(s) in 3 object(s) allocated from:
#0 0xffff8d7ab3c3 in __interceptor_calloc (/lib64/libasan.so.4+0xd33c3)
#1 0xffff8d4c31cb in g_malloc0 (/lib64/libglib-2.0.so.0+0x571cb)
#2 0x190c857 in qobject_input_start_struct /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qapi/qobject-input-visitor.c:295
#3 0x19070df in visit_start_struct /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qapi/qapi-visit-core.c:49
#4 0x1948b87 in visit_type_ThrottleLimits qapi/qapi-visit-block-core.c:3759
#5 0x17e4aa3 in throttle_group_set_limits /mnt/sdc/qemu-master/qemu-4.2.0-rc0/block/throttle-groups.c:900
#6 0x1650eff in object_property_set /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qom/object.c:1272
#7 0x1658517 in object_property_set_qobject /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qom/qom-qobject.c:26
#8 0x15880bb in qmp_qom_set /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qom/qom-qmp-cmds.c:74
#9 0x157e3e3 in qmp_marshal_qom_set qapi/qapi-commands-qom.c:154
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: PanNengyuan <pannengyuan@huawei.com>
---
Changes v2 to v1:
- remove unused var 'arg' (suggested by Alberto Garcia)
---
block/throttle-groups.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/block/throttle-groups.c b/block/throttle-groups.c
index 77014c7..37695b0 100644
--- a/block/throttle-groups.c
+++ b/block/throttle-groups.c
@@ -893,8 +893,7 @@ static void throttle_group_set_limits(Object *obj, Visitor *v,
{
ThrottleGroup *tg = THROTTLE_GROUP(obj);
ThrottleConfig cfg;
- ThrottleLimits arg = { 0 };
- ThrottleLimits *argp = &arg;
+ ThrottleLimits *argp;
Error *local_err = NULL;
visit_type_ThrottleLimits(v, name, &argp, &local_err);
@@ -912,6 +911,7 @@ static void throttle_group_set_limits(Object *obj, Visitor *v,
unlock:
qemu_mutex_unlock(&tg->lock);
ret:
+ qapi_free_ThrottleLimits(argp);
error_propagate(errp, local_err);
return;
}
--
2.7.2.windows.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH V2] throttle-groups: fix memory leak in throttle_group_set_limit:
2019-11-27 6:20 [PATCH V2] throttle-groups: fix memory leak in throttle_group_set_limit: pannengyuan
@ 2019-11-27 12:28 ` Max Reitz
0 siblings, 0 replies; 2+ messages in thread
From: Max Reitz @ 2019-11-27 12:28 UTC (permalink / raw)
To: pannengyuan, berto, kwolf
Cc: liyiting, kuhn.chenqun, qemu-devel, qemu-block,
zhang.zhanghailiang
[-- Attachment #1.1: Type: text/plain, Size: 1805 bytes --]
On 27.11.19 07:20, pannengyuan@huawei.com wrote:
> From: PanNengyuan <pannengyuan@huawei.com>
>
> This avoid a memory leak when qom-set is called to set throttle_group
> limits, here is an easy way to reproduce:
>
> 1. run qemu-iotests as follow and check the result with asan:
> ./check -qcow2 184
>
> Following is the asan output backtrack:
> Direct leak of 912 byte(s) in 3 object(s) allocated from:
> #0 0xffff8d7ab3c3 in __interceptor_calloc (/lib64/libasan.so.4+0xd33c3)
> #1 0xffff8d4c31cb in g_malloc0 (/lib64/libglib-2.0.so.0+0x571cb)
> #2 0x190c857 in qobject_input_start_struct /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qapi/qobject-input-visitor.c:295
> #3 0x19070df in visit_start_struct /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qapi/qapi-visit-core.c:49
> #4 0x1948b87 in visit_type_ThrottleLimits qapi/qapi-visit-block-core.c:3759
> #5 0x17e4aa3 in throttle_group_set_limits /mnt/sdc/qemu-master/qemu-4.2.0-rc0/block/throttle-groups.c:900
> #6 0x1650eff in object_property_set /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qom/object.c:1272
> #7 0x1658517 in object_property_set_qobject /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qom/qom-qobject.c:26
> #8 0x15880bb in qmp_qom_set /mnt/sdc/qemu-master/qemu-4.2.0-rc0/qom/qom-qmp-cmds.c:74
> #9 0x157e3e3 in qmp_marshal_qom_set qapi/qapi-commands-qom.c:154
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: PanNengyuan <pannengyuan@huawei.com>
> ---
> Changes v2 to v1:
> - remove unused var 'arg' (suggested by Alberto Garcia)
> ---
> block/throttle-groups.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Thanks, applied to my block-next branch for 5.0:
https://git.xanclic.moe/XanClic/qemu/commits/branch/block-next
Max
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-11-27 12:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-27 6:20 [PATCH V2] throttle-groups: fix memory leak in throttle_group_set_limit: pannengyuan
2019-11-27 12:28 ` Max Reitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).