
On Fri, 2015-08-07 at 16:45 -0400, John Ferlan wrote:
static virCPUDataPtr ppc64DriverNodeData(virArch arch) { - virCPUDataPtr cpuData; + virCPUDataPtr nodeData; + virCPUppc64Data *data;
- if (VIR_ALLOC(cpuData) < 0) - return NULL; + if (VIR_ALLOC(nodeData) < 0) + goto error;
- cpuData->arch = arch; + data = nodeData->data.ppc64; + + if (VIR_ALLOC(data) < 0) + goto error;
Coverity complains that 'data' isn't free'd (or stored to be free'd) anywhere from here...
if you change the code as follows, the Coverity issue goes away (as does the follow-up patch (13) where data->pvr is allocated. That one is fine...
if (VIR_ALLOC(nodeData->data.ppc64) < 0) goto error; data = nodeData->data.ppc64;
The issue is 'data' is a local, the VIR_ALLOC will overwrite the initial setting.
Yup, that's definitely a bug. Thanks for pointing it out. v3 is on the way :) Cheers. -- Andrea Bolognani Software Engineer - Virtualization Team