fix init leak if network interface not found

If at startup the requested interface cannot be found (or no suitable
interface exists), the code failed to release all memory allocated in
the process.

Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
Erik Boasson 2019-05-07 15:14:34 +08:00 committed by eboasson
parent d16264fd82
commit d91e7b34c9

View file

@ -1330,12 +1330,9 @@ err_set_ext_address:
ddsrt_free (n); ddsrt_free (n);
} }
err_set_recvips: err_set_recvips:
{
int i;
for (i = 0; i < gv.n_interfaces; i++)
ddsrt_free (gv.interfaces[i].name);
}
err_find_own_ip: err_find_own_ip:
for (int i = 0; i < gv.n_interfaces; i++)
ddsrt_free (gv.interfaces[i].name);
ddsi_tran_factories_fini (); ddsi_tran_factories_fini ();
err_udp_tcp_init: err_udp_tcp_init:
if (config.tp_enable) if (config.tp_enable)
@ -1665,11 +1662,8 @@ DDSRT_WARNING_MSVC_ON(6001);
ddsrt_free (n); ddsrt_free (n);
} }
{ for (int i = 0; i < (int) gv.n_interfaces; i++)
int i;
for (i = 0; i < (int) gv.n_interfaces; i++)
ddsrt_free (gv.interfaces[i].name); ddsrt_free (gv.interfaces[i].name);
}
ddsi_serdatapool_free (gv.serpool); ddsi_serdatapool_free (gv.serpool);
nn_xmsgpool_free (gv.xmsgpool); nn_xmsgpool_free (gv.xmsgpool);