From 2f7ced36e625fb59a83f2522963e846f9775b8cb Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Wed, 27 Aug 2014 14:57:08 -0400 Subject: [PATCH] qemu_capabilities: Resolve Coverity RESOURCE_LEAK Coverity determined that on error path that 'mach' wouldn't be free'd Since virCapabilitiesFreeGuestMachine() isn't globally available, we'll insert first and then if the VIR_STRDUP's fail they it will eventually cause the 'mach' to be freed in the error path --- src/qemu/qemu_capabilities.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4a540eec9e..e8614151d8 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2108,6 +2108,7 @@ int virQEMUCapsGetMachineTypesCaps(virQEMUCapsPtr qemuCaps, virCapsGuestMachinePtr mach; if (VIR_ALLOC(mach) < 0) goto error; + (*machines)[i] = mach; if (qemuCaps->machineAliases[i]) { if (VIR_STRDUP(mach->name, qemuCaps->machineAliases[i]) < 0 || VIR_STRDUP(mach->canonical, qemuCaps->machineTypes[i]) < 0) @@ -2117,7 +2118,6 @@ int virQEMUCapsGetMachineTypesCaps(virQEMUCapsPtr qemuCaps, goto error; } mach->maxCpus = qemuCaps->machineMaxCpus[i]; - (*machines)[i] = mach; } return 0; -- 2.39.5