From cdd2460dbc0af7eb0fd74d61d1862e9733856807 Mon Sep 17 00:00:00 2001 From: Owen Smith Date: Tue, 22 Aug 2023 12:28:45 +0100 Subject: [PATCH] Avoid dereferencing NULL cache objects. XENBUS_CACHE(Get, ...) can fail in low memory conditions. Avoid dereferencing NULL pointers in ASSERTs Fix up error path to avoid returning a NULL pointer to the cache. Signed-off-by: Owen Smith --- src/xenvif/receiver.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c index 4807582..0ce5b67 100644 --- a/src/xenvif/receiver.c +++ b/src/xenvif/receiver.c @@ -266,6 +266,8 @@ __ReceiverRingGetPacket( &Receiver->CacheInterface, Ring->PacketCache, Locked); + if (Packet == NULL) + return NULL; ASSERT(IsZeroMemory(&Packet->Info, sizeof (XENVIF_PACKET_INFO))); ASSERT3P(Packet->Ring, ==, Ring); @@ -1788,11 +1790,11 @@ __ReceiverRingPreparePacket( fail2: Error("fail2\n"); + __ReceiverRingPutFragment(Ring, Fragment); + fail1: Error("fail1 (%08x)\n", status); - __ReceiverRingPutFragment(Ring, Fragment); - return NULL; } -- 2.39.5