diff options
Diffstat (limited to 'net/xfrm')
-rw-r--r-- | net/xfrm/xfrm_policy.c | 3 | ||||
-rw-r--r-- | net/xfrm/xfrm_state.c | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index c3a4b0a18687..95a47304336d 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -1299,7 +1299,8 @@ xfrm_tmpl_resolve_one(struct xfrm_policy *policy, struct flowi *fl, | |||
1299 | xfrm_address_t *local = saddr; | 1299 | xfrm_address_t *local = saddr; |
1300 | struct xfrm_tmpl *tmpl = &policy->xfrm_vec[i]; | 1300 | struct xfrm_tmpl *tmpl = &policy->xfrm_vec[i]; |
1301 | 1301 | ||
1302 | if (tmpl->mode == XFRM_MODE_TUNNEL) { | 1302 | if (tmpl->mode == XFRM_MODE_TUNNEL || |
1303 | tmpl->mode == XFRM_MODE_BEET) { | ||
1303 | remote = &tmpl->id.daddr; | 1304 | remote = &tmpl->id.daddr; |
1304 | local = &tmpl->saddr; | 1305 | local = &tmpl->saddr; |
1305 | family = tmpl->encap_family; | 1306 | family = tmpl->encap_family; |
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 38f90ca75b1e..31be405efb55 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c | |||
@@ -611,7 +611,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr, | |||
611 | selector. | 611 | selector. |
612 | */ | 612 | */ |
613 | if (x->km.state == XFRM_STATE_VALID) { | 613 | if (x->km.state == XFRM_STATE_VALID) { |
614 | if (!xfrm_selector_match(&x->sel, fl, family) || | 614 | if (!xfrm_selector_match(&x->sel, fl, x->sel.family) || |
615 | !security_xfrm_state_pol_flow_match(x, pol, fl)) | 615 | !security_xfrm_state_pol_flow_match(x, pol, fl)) |
616 | continue; | 616 | continue; |
617 | if (!best || | 617 | if (!best || |
@@ -623,7 +623,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr, | |||
623 | acquire_in_progress = 1; | 623 | acquire_in_progress = 1; |
624 | } else if (x->km.state == XFRM_STATE_ERROR || | 624 | } else if (x->km.state == XFRM_STATE_ERROR || |
625 | x->km.state == XFRM_STATE_EXPIRED) { | 625 | x->km.state == XFRM_STATE_EXPIRED) { |
626 | if (xfrm_selector_match(&x->sel, fl, family) && | 626 | if (xfrm_selector_match(&x->sel, fl, x->sel.family) && |
627 | security_xfrm_state_pol_flow_match(x, pol, fl)) | 627 | security_xfrm_state_pol_flow_match(x, pol, fl)) |
628 | error = -ESRCH; | 628 | error = -ESRCH; |
629 | } | 629 | } |