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 <owen.smith@cloud.com>
&Receiver->CacheInterface,
Ring->PacketCache,
Locked);
+ if (Packet == NULL)
+ return NULL;
ASSERT(IsZeroMemory(&Packet->Info, sizeof (XENVIF_PACKET_INFO)));
ASSERT3P(Packet->Ring, ==, Ring);
fail2:
Error("fail2\n");
+ __ReceiverRingPutFragment(Ring, Fragment);
+
fail1:
Error("fail1 (%08x)\n", status);
- __ReceiverRingPutFragment(Ring, Fragment);
-
return NULL;
}