Message ID | 20110720085149.GI6445@shale.localdomain |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Le mercredi 20 juillet 2011 à 11:51 +0300, Dan Carpenter a écrit : > There are two problems: > 1) "n" was allocated with alloc_skb() so we should free it with > kfree_skb() instead of regular kfree(). > 2) We return the freed pointer instead of NULL. > > Signed-off-by: Dan Carpenter <error27@gmail.com> Thanks Dan Reviewed-by: Eric Dumazet <eric.dumazet@gmail.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Wed, 20 Jul 2011 10:59:46 +0200 > Le mercredi 20 juillet 2011 à 11:51 +0300, Dan Carpenter a écrit : >> There are two problems: >> 1) "n" was allocated with alloc_skb() so we should free it with >> kfree_skb() instead of regular kfree(). >> 2) We return the freed pointer instead of NULL. >> >> Signed-off-by: Dan Carpenter <error27@gmail.com> > > Thanks Dan > > Reviewed-by: Eric Dumazet <eric.dumazet@gmail.com> Applied, thanks everyone. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index d220119..2beda82 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -799,7 +799,8 @@ struct sk_buff *pskb_copy(struct sk_buff *skb, gfp_t gfp_mask) if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) { if (skb_copy_ubufs(skb, gfp_mask)) { - kfree(n); + kfree_skb(n); + n = NULL; goto out; } skb_shinfo(skb)->tx_flags &= ~SKBTX_DEV_ZEROCOPY;
There are two problems: 1) "n" was allocated with alloc_skb() so we should free it with kfree_skb() instead of regular kfree(). 2) We return the freed pointer instead of NULL. Signed-off-by: Dan Carpenter <error27@gmail.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html