packet: Fix leak in pre-defrag support.

When we clone the SKB, we forget about the original
one.  Avoid this problem by using skb_share_check().

Reported-by: Penttilä Mika <mika.penttila@ixonos.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2011-07-06 07:30:59 -07:00
parent dc7f9f6e88
commit aec27311c2

View File

@ -476,7 +476,7 @@ static struct sk_buff *fanout_check_defrag(struct sk_buff *skb)
return skb;
if (ip_is_fragment(ip_hdr(skb))) {
skb = skb_clone(skb, GFP_ATOMIC);
skb = skb_share_check(skb, GFP_ATOMIC);
if (skb) {
if (pskb_trim_rcsum(skb, len))
return skb;