diff options
Diffstat (limited to 'net/bridge/br_input.c')
| -rw-r--r-- | net/bridge/br_input.c | 7 | 
1 files changed, 2 insertions, 5 deletions
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 8a4368461fb0..855b72fbe1da 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -80,13 +80,10 @@ static void br_do_proxy_arp(struct sk_buff *skb, struct net_bridge *br,  	BR_INPUT_SKB_CB(skb)->proxyarp_replied = false; -	if (dev->flags & IFF_NOARP) +	if ((dev->flags & IFF_NOARP) || +	    !pskb_may_pull(skb, arp_hdr_len(dev)))  		return; -	if (!pskb_may_pull(skb, arp_hdr_len(dev))) { -		dev->stats.tx_dropped++; -		return; -	}  	parp = arp_hdr(skb);  	if (parp->ar_pro != htons(ETH_P_IP) ||  |