ws2_32: Fix memory leak on error path in get_local_ips (cppcheck).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
950792ae2b
commit
978df2e031
|
@ -806,7 +806,7 @@ static struct hostent *get_local_ips( char *hostname )
|
||||||
IP_ADAPTER_INFO *adapters = NULL, *k;
|
IP_ADAPTER_INFO *adapters = NULL, *k;
|
||||||
struct hostent *hostlist = NULL;
|
struct hostent *hostlist = NULL;
|
||||||
MIB_IPFORWARDTABLE *routes = NULL;
|
MIB_IPFORWARDTABLE *routes = NULL;
|
||||||
struct route *route_addrs = NULL;
|
struct route *route_addrs = NULL, *new_route_addrs;
|
||||||
DWORD adap_size, route_size, n;
|
DWORD adap_size, route_size, n;
|
||||||
|
|
||||||
/* Obtain the size of the adapter list and routing table, also allocate memory */
|
/* Obtain the size of the adapter list and routing table, also allocate memory */
|
||||||
|
@ -852,9 +852,10 @@ static struct hostent *get_local_ips( char *hostname )
|
||||||
}
|
}
|
||||||
if (exists)
|
if (exists)
|
||||||
continue;
|
continue;
|
||||||
route_addrs = realloc( route_addrs, (numroutes + 1) * sizeof(struct route) );
|
new_route_addrs = realloc( route_addrs, (numroutes + 1) * sizeof(struct route) );
|
||||||
if (!route_addrs)
|
if (!new_route_addrs)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
route_addrs = new_route_addrs;
|
||||||
route_addrs[numroutes].interface = ifindex;
|
route_addrs[numroutes].interface = ifindex;
|
||||||
route_addrs[numroutes].metric = ifmetric;
|
route_addrs[numroutes].metric = ifmetric;
|
||||||
route_addrs[numroutes].default_route = ifdefault;
|
route_addrs[numroutes].default_route = ifdefault;
|
||||||
|
|
Loading…
Reference in New Issue