init_route() can allocate memory in netlist, but fail in many more ways
than just fail to allocate. Thus, always check and clean up netlist if
needed, instead of just when init_route() succeeds.
This fix is for release/2.3 only. The master branch uses a gc to clean
up the netlist, and needs a different patch for a similar problem.
Found using coverity.
Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <
1446761821-14013-1-git-send-email-steffan@karger.me>
URL: http://article.gmane.org/gmane.network.openvpn.devel/10442
Signed-off-by: Gert Doering <gert@greenie.muc.de>
bool warned = false;
for (i = 0; i < opt->n; ++i)
{
- struct addrinfo* netlist;
+ struct addrinfo* netlist = NULL;
struct route_ipv4 r;
if (!init_route (&r,
}
}
}
- freeaddrinfo(netlist);
}
+ if (netlist)
+ freeaddrinfo(netlist);
}
rl->n = j;
}