conf: fix leak in virDomainVcpuPinAdd

Fix the leak of vcpupin on failure to allocate cpumask and the leak of
cpumask if we fail to expand vcpupin_list.
This commit is contained in:
Ján Tomko 2013-01-15 15:43:08 +01:00
parent a69d7a00c4
commit 65aa3e3414

View File

@ -11900,26 +11900,25 @@ int virDomainVcpuPinAdd(virDomainVcpuPinDefPtr **vcpupin_list,
/* No existing vcpupin matches vcpu, adding a new one */
if (VIR_ALLOC(vcpupin) < 0) {
virReportOOMError();
return -1;
}
if (VIR_ALLOC(vcpupin) < 0)
goto no_memory;
vcpupin->vcpuid = vcpu;
vcpupin->cpumask = virBitmapNewData(cpumap, maplen);
if (!vcpupin->cpumask) {
virReportOOMError();
return -1;
}
if (!vcpupin->cpumask)
goto no_memory;
if (VIR_REALLOC_N(*vcpupin_list, *nvcpupin + 1) < 0) {
virReportOOMError();
VIR_FREE(vcpupin);
return -1;
}
if (VIR_REALLOC_N(*vcpupin_list, *nvcpupin + 1) < 0)
goto no_memory;
(*vcpupin_list)[(*nvcpupin)++] = vcpupin;
return 0;
no_memory:
virReportOOMError();
virDomainVcpuPinDefFree(vpcupin);
return -1;
}
int