In the Linux kernel, the following vulnerability has been resolved: ppp: fix memory leak in padcompressskb If allocskb() fails in padcompressskb(), it returns NULL without releasing the old skb. The caller does: skb = padcompressskb(ppp, skb); if (!skb) goto drop; drop: kfreeskb(skb); When padcompressskb() returns NULL, the reference to the old skb is lost and kfreeskb(skb) ends up doing nothing, leading to a memory leak. Align padcompressskb() semantics with realloc(): only free the old skb if allocation and compression succeed. At the call site, use the newskb variable so the original skb is not lost when padcompressskb() fails.