From: David S. Miller Date: Wed, 6 Jul 2011 14:30:59 +0000 (-0700) Subject: packet: Fix leak in pre-defrag support. X-Git-Tag: firefly_0821_release~3680^2~5008^2~217 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=aec27311c23a8ce8eaf490762249d3ed74be83b6;p=firefly-linux-kernel-4.4.55.git 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 Signed-off-by: David S. Miller --- diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 41f0489ff665..aec50a1e9849 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -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;