[libvirt PATCH 3/3] virQEMUCapsSetHostModel: Fix memory leak
Tim Wiederhake
twiederh at redhat.com
Thu Apr 15 15:08:28 UTC 2021
virQEMUCapsSetHostModel is called by virQEMUCapsInitHostCPUModel,
which in turn is typically called twice (for KVM and QEMU), e.g. in
virQEMUCapsLoadCache and virQEMUCapsNewForBinaryInternal.
The second call leaks memory pointed to by "reported", "migratable"
and "full".
Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
src/qemu/qemu_capabilities.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index f1a3c526ef..ff8877631c 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2276,6 +2276,14 @@ virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps,
virQEMUCapsHostCPUData *cpuData;
cpuData = &virQEMUCapsGetAccel(qemuCaps, type)->hostCPU;
+
+ if (cpuData->reported)
+ virCPUDefFree(cpuData->reported);
+ if (cpuData->migratable)
+ virCPUDefFree(cpuData->migratable);
+ if (cpuData->full)
+ virCPUDefFree(cpuData->full);
+
cpuData->reported = reported;
cpuData->migratable = migratable;
cpuData->full = full;
--
2.26.2
More information about the libvir-list
mailing list