[libvirt] [PATCH 3/3] virQEMUCapsSetHostModel: Free cpuData before setting it

Michal Privoznik mprivozn at redhat.com
Wed May 30 16:04:29 UTC 2018


While this leak happens in tests only, it is still worth fixing.

==12962== 2,035 (104 direct, 1,931 indirect) bytes in 1 blocks are definitely lost in loss record 325 of 331
==12962==    at 0x4C2CF26: calloc (vg_replace_malloc.c:711)
==12962==    by 0x5D285D5: virAlloc (viralloc.c:144)
==12962==    by 0x5E823EB: virCPUGetHost (cpu.c:411)
==12962==    by 0x56DE953: virQEMUCapsInitHostCPUModel (qemu_capabilities.c:2874)
==12962==    by 0x56E062F: virQEMUCapsLoadCache (qemu_capabilities.c:3435)
==12962==    by 0x13802F: qemuTestParseCapabilitiesArch (testutilsqemu.c:500)
==12962==    by 0x1371F0: mymain (qemuxml2argvtest.c:2871)
==12962==    by 0x13AD0B: virTestMain (testutils.c:1120)
==12962==    by 0x1372FD: main (qemuxml2argvtest.c:2883)

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 src/qemu/qemu_capabilities.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index e2e76e4dd8..9ec9089d5b 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1857,6 +1857,10 @@ virQEMUCapsSetHostModel(virQEMUCapsPtr qemuCaps,
 {
     virQEMUCapsHostCPUDataPtr cpuData = virQEMUCapsGetHostCPUData(qemuCaps, type);
 
+    virCPUDefFree(cpuData->reported);
+    virCPUDefFree(cpuData->migratable);
+    virCPUDefFree(cpuData->full);
+
     cpuData->reported = reported;
     cpuData->migratable = migratable;
     cpuData->full = full;
-- 
2.16.1




More information about the libvir-list mailing list