summaryrefslogtreecommitdiff
path: root/net/ipv4
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2013-09-09 08:38:38 (GMT)
committerSteffen Klassert <steffen.klassert@secunet.com>2013-09-16 07:39:43 (GMT)
commitbafd4bd4dcfa13145db7f951251eef3e10f8c278 (patch)
treeea58f7ef1aa6fc37c97013492484af3afe24a799 /net/ipv4
parent4479ff76c43607b680f9349128d8493228b49dce (diff)
downloadlinux-fsl-qoriq-bafd4bd4dcfa13145db7f951251eef3e10f8c278.tar.xz
xfrm: Decode sessions with output interface.
The output interface matching does not work on forward policy lookups, the output interface of the flowi is always 0. Fix this by setting the output interface when we decode the session. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/xfrm4_policy.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
index 9a459be..ccde542 100644
--- a/net/ipv4/xfrm4_policy.c
+++ b/net/ipv4/xfrm4_policy.c
@@ -107,6 +107,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
memset(fl4, 0, sizeof(struct flowi4));
fl4->flowi4_mark = skb->mark;
+ fl4->flowi4_oif = skb_dst(skb)->dev->ifindex;
if (!ip_is_fragment(iph)) {
switch (iph->protocol) {