aboutsummaryrefslogtreecommitdiff
path: root/qom
diff options
context:
space:
mode:
authorPan Nengyuan <pannengyuan@huawei.com>2020-06-03 03:03:38 -0400
committerDr. David Alan Gilbert <dgilbert@redhat.com>2020-06-17 17:48:38 +0100
commit246da7db3cc103c537b0dd3c1adadbfd9a94ecd7 (patch)
tree0cbf278f3e87f3276aee30a6b91faacf32715430 /qom
parent63659fe74e76f5c5285466f0c5cfbdca65b3688e (diff)
downloadqemu-246da7db3cc103c537b0dd3c1adadbfd9a94ecd7.zip
qemu-246da7db3cc103c537b0dd3c1adadbfd9a94ecd7.tar.gz
qemu-246da7db3cc103c537b0dd3c1adadbfd9a94ecd7.tar.bz2
qom-hmp-cmds: fix a memleak in hmp_qom_get
'obj' forgot to free at the end of hmp_qom_get(). Fix that. The leak stack: Direct leak of 40 byte(s) in 1 object(s) allocated from: #0 0x7f4e3a779ae8 in __interceptor_malloc (/lib64/libasan.so.5+0xefae8) #1 0x7f4e398f91d5 in g_malloc (/lib64/libglib-2.0.so.0+0x531d5) #2 0x55c9fd9a3999 in qstring_from_substr /build/qemu/src/qobject/qstring.c:45 #3 0x55c9fd894bd3 in qobject_output_type_str /build/qemu/src/qapi/qobject-output-visitor.c:175 #4 0x55c9fd894bd3 in qobject_output_type_str /build/qemu/src/qapi/qobject-output-visitor.c:168 #5 0x55c9fd88b34d in visit_type_str /build/qemu/src/qapi/qapi-visit-core.c:308 #6 0x55c9fd59aa6b in property_get_str /build/qemu/src/qom/object.c:2064 #7 0x55c9fd5adb8a in object_property_get_qobject /build/qemu/src/qom/qom-qobject.c:38 #8 0x55c9fd4a029d in hmp_qom_get /build/qemu/src/qom/qom-hmp-cmds.c:66 Fixes: 89cf4fe34f4 Reported-by: Euler Robot <euler.robot@huawei.com> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com> Message-Id: <20200603070338.7922-1-pannengyuan@huawei.com> Reviewed-by: Li Qiang <liq3ea@gmail.com> Tested-by: Li Qiang <liq3ea@gmail.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'qom')
-rw-r--r--qom/qom-hmp-cmds.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c
index 99385b6..158e2d7 100644
--- a/qom/qom-hmp-cmds.c
+++ b/qom/qom-hmp-cmds.c
@@ -71,6 +71,7 @@ void hmp_qom_get(Monitor *mon, const QDict *qdict)
qobject_unref(str);
}
+ qobject_unref(obj);
hmp_handle_error(mon, err);
}