1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-01-12 13:17:58 +03:00

cpu_x86: Resolve Coverity RESOURCE_LEAK

Coverity determined that the copied 'oldguest' would be leaked for
both error and success paths.
This commit is contained in:
John Ferlan 2014-08-27 14:27:07 -04:00
parent f9c827e383
commit be7b82a283

View File

@ -2024,8 +2024,9 @@ static int
x86UpdateHostModel(virCPUDefPtr guest,
const virCPUDef *host)
{
virCPUDefPtr oldguest;
virCPUDefPtr oldguest = NULL;
size_t i;
int ret = -1;
guest->match = VIR_CPU_MATCH_EXACT;
@ -2037,20 +2038,24 @@ x86UpdateHostModel(virCPUDefPtr guest,
/* update the host model according to the desired configuration */
if (!(oldguest = virCPUDefCopy(guest)))
return -1;
goto cleanup;
virCPUDefFreeModel(guest);
if (virCPUDefCopyModel(guest, host, true) < 0)
return -1;
goto cleanup;
for (i = 0; i < oldguest->nfeatures; i++) {
if (virCPUDefUpdateFeature(guest,
oldguest->features[i].name,
oldguest->features[i].policy) < 0)
return -1;
goto cleanup;
}
return 0;
ret = 0;
cleanup:
virCPUDefFree(oldguest);
return ret;
}