mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-04 04:06:26 +00:00
bridge: Clear INET control block of SKBs passed into ip_fragment().
commit87f94b4e91
upstream. In a similar vain to commit17762060c2
("bridge: Clear IPCB before possible entry into IP stack") Any time we call into the IP stack we have to make sure the state there is as expected by the ipv4 code. With help from Eric Dumazet and Herbert Xu. Reported-by: Bandan Das <bandan.das@stratus.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This commit is contained in:
parent
7593862bde
commit
dee9314a05
@ -801,9 +801,11 @@ static int br_nf_dev_queue_xmit(struct sk_buff *skb)
|
||||
if (skb->nfct != NULL &&
|
||||
(skb->protocol == htons(ETH_P_IP) || IS_VLAN_IP(skb)) &&
|
||||
skb->len > skb->dev->mtu &&
|
||||
!skb_is_gso(skb))
|
||||
!skb_is_gso(skb)) {
|
||||
/* BUG: Should really parse the IP options here. */
|
||||
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
|
||||
return ip_fragment(skb, br_dev_queue_push_xmit);
|
||||
else
|
||||
} else
|
||||
return br_dev_queue_push_xmit(skb);
|
||||
}
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user