Initialize 'ret' to false and introduce a cleanup label. --- tools/virsh-domain.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 84a6706..4d21704 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -5536,25 +5536,21 @@ cmdVcpuinfo(vshControl *ctl, const vshCmd *cmd) { virDomainInfo info; virDomainPtr dom; - virVcpuInfoPtr cpuinfo; - unsigned char *cpumaps; + virVcpuInfoPtr cpuinfo = NULL; + unsigned char *cpumaps = NULL; int ncpus, maxcpu; size_t cpumaplen; - bool ret = true; + bool ret = false; int n, m; if (!(dom = vshCommandOptDomain(ctl, cmd, NULL))) return false; - if ((maxcpu = vshNodeGetCPUCount(ctl->conn)) < 0) { - virDomainFree(dom); - return false; - } + if ((maxcpu = vshNodeGetCPUCount(ctl->conn)) < 0) + goto cleanup; - if (virDomainGetInfo(dom, &info) != 0) { - virDomainFree(dom); - return false; - } + if (virDomainGetInfo(dom, &info) != 0) + goto cleanup; cpuinfo = vshMalloc(ctl, sizeof(virVcpuInfo)*info.nrVirtCpu); cpumaplen = VIR_CPU_MAPLEN(maxcpu); @@ -5608,10 +5604,13 @@ cmdVcpuinfo(vshControl *ctl, const vshCmd *cmd) } } } else { - ret = false; + goto cleanup; } } + ret = true; + + cleanup: VIR_FREE(cpumaps); VIR_FREE(cpuinfo); virDomainFree(dom); -- 1.8.3.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list