[PATCH] net: dl2k: fix potential null deref in receive_packet()
From: Qasim Ijaz
Date: Fri Mar 21 2025 - 08:17:54 EST
If the pkt_len is less than the copy_thresh the netdev_alloc_skb_ip_align()
is called to allocate an skbuff, on failure it can return NULL. Since
there is no NULL check a NULL deref can occur when setting
skb->protocol.
Fix this by introducing a NULL check to handle allocation failure.
Fixes: 89d71a66c40d ("net: Use netdev_alloc_skb_ip_align()")
Signed-off-by: Qasim Ijaz <qasdev00@xxxxxxxxx>
---
drivers/net/ethernet/dlink/dl2k.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/dlink/dl2k.c b/drivers/net/ethernet/dlink/dl2k.c
index d0ea92607870..22e9432adea0 100644
--- a/drivers/net/ethernet/dlink/dl2k.c
+++ b/drivers/net/ethernet/dlink/dl2k.c
@@ -968,6 +968,11 @@ receive_packet (struct net_device *dev)
np->rx_buf_sz,
DMA_FROM_DEVICE);
}
+
+ if (unlikely(!skb)) {
+ np->rx_ring[entry].fraginfo = 0;
+ break;
+ }
skb->protocol = eth_type_trans (skb, dev);
#if 0
/* Checksum done by hw, but csum value unavailable. */
--
2.39.5