prlsdkGetNetAddresses allocates addr via g_new0 on each loop iteration.
If PrlStrList_GetItem fails and jumps to cleanup, addr is leaked since
prlsdkParseNetAddress (which previously freed it) is never reached.
Fix by using g_autofree for addr in prlsdkGetNetAddresses so it is freed
at scope end, and remove the VIR_FREE(addr) from prlsdkParseNetAddress
to avoid double-free, as callers should manage their own memory.
Signed-off-by: Shiva Shankar <shivanayak@gmail.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
VIR_WARN("cannot parse network address '%s'", addr);
VIR_FREE(ip);
- VIR_FREE(addr);
return ret;
}
for (i = 0; i < num; ++i) {
virNetDevIPAddr *ip = NULL;
PRL_UINT32 buflen = 0;
- char *addr;
+ g_autofree char *addr = NULL;
pret = PrlStrList_GetItem(addrlist, i, NULL, &buflen);
prlsdkCheckRetGoto(pret, cleanup);