From: Denis Kirjanov Date: Thu, 13 Feb 2014 04:58:56 +0000 (+0400) Subject: ipv4: ip_forward: perform skb->pkt_type check at the beginning X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=d4f2fa6ad61ec1db713569a179183df4d0fc6ae7;p=openwrt%2Fstaging%2Fblogic.git ipv4: ip_forward: perform skb->pkt_type check at the beginning Packets which have L2 address different from ours should be already filtered before entering into ip_forward(). Perform that check at the beginning to avoid processing such packets. Signed-off-by: Denis Kirjanov Signed-off-by: David S. Miller --- diff --git a/net/ipv4/ip_forward.c b/net/ipv4/ip_forward.c index e9f1217a8afd..d9d929042a89 100644 --- a/net/ipv4/ip_forward.c +++ b/net/ipv4/ip_forward.c @@ -59,6 +59,10 @@ int ip_forward(struct sk_buff *skb) struct rtable *rt; /* Route we use */ struct ip_options *opt = &(IPCB(skb)->opt); + /* that should never happen */ + if (skb->pkt_type != PACKET_HOST) + goto drop; + if (skb_warn_if_lro(skb)) goto drop; @@ -68,9 +72,6 @@ int ip_forward(struct sk_buff *skb) if (IPCB(skb)->opt.router_alert && ip_call_ra_chain(skb)) return NET_RX_SUCCESS; - if (skb->pkt_type != PACKET_HOST) - goto drop; - skb_forward_csum(skb); /*