From: shivanayak Date: Sun, 8 Mar 2026 18:28:45 +0000 (+0530) Subject: vz: fix memory leak in prlsdkGetNetAddresses() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12dc8144895a51e24523c41b6ea093fb5f41e7bc;p=thirdparty%2Flibvirt.git vz: fix memory leak in prlsdkGetNetAddresses() 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 Reviewed-by: Peter Krempa --- diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 160778146d..e6dd9533be 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -900,7 +900,6 @@ prlsdkParseNetAddress(char *addr) VIR_WARN("cannot parse network address '%s'", addr); VIR_FREE(ip); - VIR_FREE(addr); return ret; } @@ -923,7 +922,7 @@ prlsdkGetNetAddresses(PRL_HANDLE sdknet, virDomainNetDef *net) 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);