kernel-netlink: Allow blank source address in routes for passthrough policies

This commit is contained in:
Tobias Brunner
2020-03-10 10:25:19 +01:00
parent 09f4bccfea
commit b0b6bd2470
@@ -2622,8 +2622,17 @@ static void install_route(private_kernel_netlink_ipsec_t *this,
); );
if (charon->kernel->get_address_by_ts(charon->kernel, out->src_ts, if (charon->kernel->get_address_by_ts(charon->kernel, out->src_ts,
&route->src_ip, NULL) == SUCCESS) &route->src_ip, NULL) != SUCCESS)
{ {
if (!route->pass)
{
free(route);
return;
}
/* allow blank source IP for passthrough policies */
route->src_ip = host_create_any(policy->sel.family);
}
if (!ipsec->dst->is_anyaddr(ipsec->dst)) if (!ipsec->dst->is_anyaddr(ipsec->dst))
{ {
route->gateway = charon->kernel->get_nexthop(charon->kernel, route->gateway = charon->kernel->get_nexthop(charon->kernel,
@@ -2700,11 +2709,6 @@ static void install_route(private_kernel_netlink_ipsec_t *this,
policy->route = route; policy->route = route;
break; break;
} }
}
else
{
free(route);
}
} }
/** /**