Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1511022c authored by Dan Carpenter's avatar Dan Carpenter Committed by David S. Miller
Browse files

skbuff: fix error handling in pskb_copy()



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: default avatarDan Carpenter <error27@gmail.com>
Reviewed-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 536d1d4a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;