aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-09-22 08:23:56 +0200
committerTobias Brunner <tobias@strongswan.org>2012-09-22 08:23:56 +0200
commitf65ec0aa90c729d80ac217502680d7d98a6d7fb0 (patch)
treefbade95ac3fa00e21f22dea66843e2453307b368 /src
parent04bb7395786e41b2a2424723f6c665aa526ea3c2 (diff)
downloadstrongswan-f65ec0aa90c729d80ac217502680d7d98a6d7fb0.tar.bz2
strongswan-f65ec0aa90c729d80ac217502680d7d98a6d7fb0.tar.xz
Make sure the if_name member of cached route entries is initialized to NULL
Diffstat (limited to 'src')
-rw-r--r--src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c7
-rw-r--r--src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c7
2 files changed, 10 insertions, 4 deletions
diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c
index cfd85a5e7..654a1c6d5 100644
--- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c
+++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_ipsec.c
@@ -2159,8 +2159,12 @@ static status_t add_policy_internal(private_kernel_netlink_ipsec_t *this,
if (policy->direction == POLICY_FWD &&
ipsec->cfg.mode != MODE_TRANSPORT && this->install_routes)
{
- route_entry_t *route = malloc_thing(route_entry_t);
policy_sa_fwd_t *fwd = (policy_sa_fwd_t*)mapping;
+ route_entry_t *route;
+
+ INIT(route,
+ .prefixlen = policy->sel.prefixlen_s,
+ );
if (hydra->kernel_interface->get_address_by_ts(hydra->kernel_interface,
fwd->dst_ts, &route->src_ip) == SUCCESS)
@@ -2171,7 +2175,6 @@ static status_t add_policy_internal(private_kernel_netlink_ipsec_t *this,
ipsec->dst);
route->dst_net = chunk_alloc(policy->sel.family == AF_INET ? 4 : 16);
memcpy(route->dst_net.ptr, &policy->sel.saddr, route->dst_net.len);
- route->prefixlen = policy->sel.prefixlen_s;
/* install route via outgoing interface */
if (!hydra->kernel_interface->get_interface(hydra->kernel_interface,
diff --git a/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c b/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
index 14ca4c8cb..c004b6f27 100644
--- a/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
+++ b/src/libhydra/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
@@ -2018,8 +2018,12 @@ static status_t add_policy_internal(private_kernel_pfkey_ipsec_t *this,
if (policy->direction == POLICY_FWD &&
ipsec->cfg.mode != MODE_TRANSPORT && this->install_routes)
{
- route_entry_t *route = malloc_thing(route_entry_t);
policy_sa_fwd_t *fwd = (policy_sa_fwd_t*)mapping;
+ route_entry_t *route;
+
+ INIT(route,
+ .prefixlen = policy->src.mask,
+ );
if (hydra->kernel_interface->get_address_by_ts(hydra->kernel_interface,
fwd->dst_ts, &route->src_ip) == SUCCESS)
@@ -2030,7 +2034,6 @@ static status_t add_policy_internal(private_kernel_pfkey_ipsec_t *this,
ipsec->dst);
route->dst_net = chunk_clone(policy->src.net->get_address(
policy->src.net));
- route->prefixlen = policy->src.mask;
/* install route via outgoing interface */
if (!hydra->kernel_interface->get_interface(hydra->kernel_interface,