Do not install routes in the PF_KEY kernel interface if interface lookup failed.

This commit is contained in:
Tobias Brunner
2010-06-23 11:43:31 +02:00
parent a427e98da1
commit 9eb7f46b3d
@@ -1795,8 +1795,11 @@ METHOD(kernel_ipsec_t, add_policy, status_t,
route->dst_net = chunk_clone(policy->src.net->get_address(policy->src.net)); route->dst_net = chunk_clone(policy->src.net->get_address(policy->src.net));
route->prefixlen = policy->src.mask; route->prefixlen = policy->src.mask;
switch (charon->kernel_interface->add_route(charon->kernel_interface, if (route->if_name)
route->dst_net, route->prefixlen, route->gateway, {
switch (charon->kernel_interface->add_route(
charon->kernel_interface, route->dst_net,
route->prefixlen, route->gateway,
route->src_ip, route->if_name)) route->src_ip, route->if_name))
{ {
default: default:
@@ -1814,6 +1817,11 @@ METHOD(kernel_ipsec_t, add_policy, status_t,
} }
} }
else else
{
route_entry_destroy(route);
}
}
else
{ {
free(route); free(route);
} }