summaryrefslogtreecommitdiff
path: root/net/ipv6/ip6_output.c
diff options
context:
space:
mode:
authorLi RongQing <roy.qing.li@gmail.com>2014-03-11 06:40:08 +0400
committerDavid S. Miller <davem@davemloft.net>2014-03-11 08:37:42 +0400
commit090f1166c6790e18c30f40690098829709e8dc68 (patch)
treee3a11c9d9e8ff209ba6f46f65f831bc7f696d999 /net/ipv6/ip6_output.c
parentfcb308d52991cbdb6231ab0e7ec3e5d1c61b3a20 (diff)
downloadlinux-090f1166c6790e18c30f40690098829709e8dc68.tar.xz
ipv6: ip6_forward: perform skb->pkt_type check at the beginning
Packets which have L2 address different from ours should be already filtered before entering into ip6_forward(). Perform that check at the beginning to avoid processing such packets. Signed-off-by: Li RongQing <roy.qing.li@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/ip6_output.c')
-rw-r--r--net/ipv6/ip6_output.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 2bc10701182b..90dd551fdd3c 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -367,6 +367,9 @@ int ip6_forward(struct sk_buff *skb)
if (net->ipv6.devconf_all->forwarding == 0)
goto error;
+ if (skb->pkt_type != PACKET_HOST)
+ goto drop;
+
if (skb_warn_if_lro(skb))
goto drop;
@@ -376,9 +379,6 @@ int ip6_forward(struct sk_buff *skb)
goto drop;
}
- if (skb->pkt_type != PACKET_HOST)
- goto drop;
-
skb_forward_csum(skb);
/*