We forgot to free alloced mem when failed to
dup ifname or macaddr.
Also use VIR_STEAL_PTR to simplify codes.
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
iface->naddrs = addrs_count;
}
- *ifaces = ifaces_ret;
- ifaces_ret = NULL;
+ VIR_STEAL_PTR(*ifaces, ifaces_ret);
ret = ifaces_count;
cleanup:
goto error;
if (VIR_STRDUP(iface->name, vm->def->nets[i]->ifname) < 0)
- goto cleanup;
+ goto error;
if (VIR_STRDUP(iface->hwaddr, macaddr) < 0)
- goto cleanup;
+ goto error;
}
for (j = 0; j < n_leases; j++) {
virDomainIPAddressPtr ip_addr = &iface->addrs[j];
if (VIR_STRDUP(ip_addr->addr, lease->ipaddr) < 0)
- goto cleanup;
+ goto error;
ip_addr->type = lease->type;
ip_addr->prefix = lease->prefix;
VIR_FREE(leases);
}
- *ifaces = ifaces_ret;
- ifaces_ret = NULL;
+ VIR_STEAL_PTR(*ifaces, ifaces_ret);
rv = ifaces_count;
cleanup: