From: Jesper Juhl There's a potential problem in isdn_ppp.c::isdn_ppp_decompress(). dev_alloc_skb() may fail and return NULL. If it does we will be passing a NULL skb_out to ipc->decompress() and may also end up dereferencing a NULL pointer at *proto = isdn_ppp_strip_proto(skb_out); Correct this by testing 'skb_out' against NULL early and bail out. Signed-off-by: Jesper Juhl Cc: Karsten Keil Signed-off-by: Andrew Morton --- drivers/isdn/i4l/isdn_ppp.c | 5 +++++ 1 file changed, 5 insertions(+) diff -puN drivers/isdn/i4l/isdn_ppp.c~isdn-avoid-a-potential-null-ptr-deref-in-ippp drivers/isdn/i4l/isdn_ppp.c --- a/drivers/isdn/i4l/isdn_ppp.c~isdn-avoid-a-potential-null-ptr-deref-in-ippp +++ a/drivers/isdn/i4l/isdn_ppp.c @@ -2536,6 +2536,11 @@ static struct sk_buff *isdn_ppp_decompre rsparm.maxdlen = IPPP_RESET_MAXDATABYTES; skb_out = dev_alloc_skb(is->mru + PPP_HDRLEN); + if (!skb_out) { + kfree_skb(skb); + printk(KERN_ERR "ippp: decomp memory allocation failure\n"); + return NULL; + } len = ipc->decompress(stat, skb, skb_out, &rsparm); kfree_skb(skb); if (len <= 0) { _