diff --git a/NetworkPkg/Ip6Dxe/Ip6Input.c b/NetworkPkg/Ip6Dxe/Ip6Input.c index f63c1afa82..55f0ae869a 100644 --- a/NetworkPkg/Ip6Dxe/Ip6Input.c +++ b/NetworkPkg/Ip6Dxe/Ip6Input.c @@ -738,8 +738,6 @@ Ip6PreProcessPacket ( OUT UINT32 *UnFragmentLen, OUT BOOLEAN *Fragmented, OUT EFI_IP6_HEADER **Head - - ) { UINT16 PayloadLen; @@ -1059,6 +1057,13 @@ Ip6AcceptFrame ( } } + // + // Check the Packet again. + // + if (Packet == NULL) { + goto Restart; + } + // // Packet may have been changed. The ownership of the packet // is transfered to the packet process logic.