diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 76735929b7..e1d04ff20b 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1994,12 +1994,13 @@ int virQEMUCapsGetMachineTypesCaps(virQEMUCapsPtr qemuCaps, { size_t i; - *nmachines = 0; *machines = NULL; - if (VIR_ALLOC_N(*machines, qemuCaps->nmachineTypes) < 0) - goto error; *nmachines = qemuCaps->nmachineTypes; + if (*nmachines && + VIR_ALLOC_N(*machines, qemuCaps->nmachineTypes) < 0) + goto error; + for (i = 0; i < qemuCaps->nmachineTypes; i++) { virCapsGuestMachinePtr mach; if (VIR_ALLOC(mach) < 0)