]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/IpSecDxe/Ikev2/Payload.c
NetworkPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / NetworkPkg / IpSecDxe / Ikev2 / Payload.c
index b92ae3a599f46cba6f13d3f476dc5ba799156bf5..56869e2db40291e769382e89f4ca949b910299da 100644 (file)
@@ -2,15 +2,9 @@
   The implementation of Payloads Creation.\r
 \r
   (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
-  Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
 \r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php.\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -52,7 +46,10 @@ Ikev2GenerateSaPayload (
   UINTN         SaDataSize;\r
 \r
   SaPayload = IkePayloadAlloc ();\r
-  ASSERT (SaPayload != NULL);\r
+  if (SaPayload == NULL) {\r
+    return NULL;\r
+  }\r
+\r
   //\r
   // TODO: Get the Proposal Number and Transform Number from IPsec Config,\r
   // after the Ipsecconfig Application is support it.\r
@@ -70,7 +67,10 @@ Ikev2GenerateSaPayload (
   }\r
 \r
   SaData = AllocateZeroPool (SaDataSize);\r
-  ASSERT (SaData != NULL);\r
+  if (SaData == NULL) {\r
+    IkePayloadFree (SaPayload);\r
+    return NULL;\r
+  }\r
 \r
   CopyMem (SaData, SessionSaData, SaDataSize);\r
   SaData->SaHeader.Header.NextPayload = NextPayload;\r
@@ -118,14 +118,20 @@ Ikev2GenerateNoncePayload (
   NonceBlock  = NonceBuf;\r
 \r
   Nonce       = AllocateZeroPool (Size);\r
-  ASSERT (Nonce != NULL);\r
+  if (Nonce == NULL) {\r
+    return NULL;\r
+  }\r
+\r
   CopyMem (Nonce + 1, NonceBlock, Size - sizeof (IKEV2_NONCE));\r
 \r
   Nonce->Header.NextPayload   = NextPayload;\r
   Nonce->Header.PayloadLength = (UINT16) Size;\r
   NoncePayload                = IkePayloadAlloc ();\r
+  if (NoncePayload == NULL) {\r
+    FreePool (Nonce);\r
+    return NULL;\r
+  }\r
 \r
-  ASSERT (NoncePayload != NULL);\r
   NoncePayload->PayloadType = IKEV2_PAYLOAD_TYPE_NONCE;\r
   NoncePayload->PayloadBuf  = (UINT8 *) Nonce;\r
   NoncePayload->PayloadSize = Size;\r
@@ -180,7 +186,9 @@ Ikev2GenerateKePayload (
   // Allocate buffer for Key Exchange\r
   //\r
   Ke = AllocateZeroPool (KeSize);\r
-  ASSERT (Ke != NULL);\r
+  if (Ke == NULL) {\r
+    return NULL;\r
+  }\r
 \r
   Ke->Header.NextPayload    = NextPayload;\r
   Ke->Header.PayloadLength  = (UINT16) KeSize;\r
@@ -192,7 +200,10 @@ Ikev2GenerateKePayload (
   // Create IKE_PAYLOAD to point to Key Exchange payload\r
   //\r
   KePayload = IkePayloadAlloc ();\r
-  ASSERT (KePayload != NULL);\r
+  if (KePayload == NULL) {\r
+    FreePool (Ke);\r
+    return NULL;\r
+  }\r
 \r
   KePayload->PayloadType = IKEV2_PAYLOAD_TYPE_KE;\r
   KePayload->PayloadBuf  = (UINT8 *) Ke;\r
@@ -241,10 +252,15 @@ Ikev2GenerateIdPayload (
   IdSize    = sizeof (IKEV2_ID) + AddrSize;\r
 \r
   Id = (IKEV2_ID *) AllocateZeroPool (IdSize);\r
-  ASSERT (Id != NULL);\r
+  if (Id == NULL) {\r
+    return NULL;\r
+  }\r
 \r
   IdPayload = IkePayloadAlloc ();\r
-  ASSERT (IdPayload != NULL);\r
+  if (IdPayload == NULL) {\r
+    FreePool (Id);\r
+    return NULL;\r
+  }\r
 \r
   IdPayload->PayloadType  = (UINT8) ((CommonSession->IsInitiator) ? IKEV2_PAYLOAD_TYPE_ID_INIT : IKEV2_PAYLOAD_TYPE_ID_RSP);\r
   IdPayload->PayloadBuf   = (UINT8 *) Id;\r
@@ -317,10 +333,15 @@ Ikev2GenerateCertIdPayload (
   IdSize = sizeof (IKEV2_ID) + SubjectSize;\r
 \r
   Id = (IKEV2_ID *) AllocateZeroPool (IdSize);\r
-  ASSERT (Id != NULL);\r
+  if (Id == NULL) {\r
+    return NULL;\r
+  }\r
 \r
   IdPayload = IkePayloadAlloc ();\r
-  ASSERT (IdPayload != NULL);\r
+  if (IdPayload == NULL) {\r
+    FreePool (Id);\r
+    return NULL;\r
+  }\r
 \r
   IdPayload->PayloadType  = (UINT8) ((CommonSession->IsInitiator) ? IKEV2_PAYLOAD_TYPE_ID_INIT : IKEV2_PAYLOAD_TYPE_ID_RSP);\r
   IdPayload->PayloadBuf   = (UINT8 *) Id;\r
@@ -398,13 +419,14 @@ Ikev2PskGenerateAuthPayload (
 \r
   DigestSize = IpSecGetHmacDigestLength ((UINT8)IkeSaSession->SessionCommon.SaParams->Prf);\r
   Digest     = AllocateZeroPool (DigestSize);\r
-\r
   if (Digest == NULL) {\r
     return NULL;\r
   }\r
+\r
   if (IdPayload == NULL) {\r
     return NULL;\r
   }\r
+\r
   //\r
   // Calcualte Prf(Seceret, "Key Pad for IKEv2");\r
   //\r
@@ -428,7 +450,11 @@ Ikev2PskGenerateAuthPayload (
   // Store the AuthKey into KeyBuf\r
   //\r
   KeyBuf = AllocateZeroPool (DigestSize);\r
-  ASSERT (KeyBuf != NULL);\r
+  if (KeyBuf == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto EXIT;\r
+  }\r
+\r
   CopyMem (KeyBuf, Digest, DigestSize);\r
   KeySize = DigestSize;\r
 \r
@@ -486,6 +512,11 @@ Ikev2PskGenerateAuthPayload (
   // Copy the result of Prf(SK_Pr, IDi/r) to Fragments[2].\r
   //\r
   Fragments[2].Data     = AllocateZeroPool (DigestSize);\r
+  if (Fragments[2].Data == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto EXIT;\r
+  }\r
+\r
   Fragments[2].DataSize = DigestSize;\r
   CopyMem (Fragments[2].Data, Digest, DigestSize);\r
 \r
@@ -509,11 +540,18 @@ Ikev2PskGenerateAuthPayload (
   // Allocate buffer for Auth Payload\r
   //\r
   AuthPayload               = IkePayloadAlloc ();\r
-  ASSERT (AuthPayload != NULL);\r
+  if (AuthPayload == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto EXIT;\r
+  }\r
 \r
   AuthPayload->PayloadSize  = sizeof (IKEV2_AUTH) + DigestSize;\r
   PayloadBuf                = (IKEV2_AUTH *) AllocateZeroPool (AuthPayload->PayloadSize);\r
-  ASSERT (PayloadBuf != NULL);\r
+  if (PayloadBuf == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto EXIT;\r
+  }\r
+\r
   //\r
   // Fill in Auth payload.\r
   //\r
@@ -613,7 +651,6 @@ Ikev2CertGenerateAuthPayload (
   UINT8              *Digest;\r
   UINTN              DigestSize;\r
   PRF_DATA_FRAGMENT  Fragments[3];\r
-  UINT8              *KeyBuf;\r
   IKE_PAYLOAD        *AuthPayload;\r
   IKEV2_AUTH         *PayloadBuf;\r
   EFI_STATUS         Status;\r
@@ -638,7 +675,6 @@ Ikev2CertGenerateAuthPayload (
   //\r
   // Initial point\r
   //\r
-  KeyBuf      = NULL;\r
   AuthPayload = NULL;\r
   Digest      = NULL;\r
   Signature   = NULL;\r
@@ -649,19 +685,10 @@ Ikev2CertGenerateAuthPayload (
   }\r
   DigestSize = IpSecGetHmacDigestLength ((UINT8)IkeSaSession->SessionCommon.SaParams->Prf);\r
   Digest     = AllocateZeroPool (DigestSize);\r
-\r
   if (Digest == NULL) {\r
     return NULL;\r
   }\r
 \r
-  //\r
-  // Store the AuthKey into KeyBuf\r
-  //\r
-  KeyBuf  = AllocateZeroPool (DigestSize);\r
-  ASSERT (KeyBuf != NULL);\r
-\r
-  CopyMem (KeyBuf, Digest, DigestSize);\r
-\r
   //\r
   // Calculate Prf(SK_Pi/r, IDi/r)\r
   //\r
@@ -724,6 +751,11 @@ Ikev2CertGenerateAuthPayload (
   // Copy the result of Prf(SK_Pr, IDi/r) to Fragments[2].\r
   //\r
   Fragments[2].Data     = AllocateZeroPool (DigestSize);\r
+  if (Fragments[2].Data == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto EXIT;\r
+  }\r
+\r
   Fragments[2].DataSize = DigestSize;\r
   CopyMem (Fragments[2].Data, Digest, DigestSize);\r
 \r
@@ -766,7 +798,10 @@ Ikev2CertGenerateAuthPayload (
   // Allocate buffer for Auth Payload\r
   //\r
   AuthPayload = IkePayloadAlloc ();\r
-  ASSERT (AuthPayload != NULL);\r
+  if (AuthPayload == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto EXIT;\r
+  }\r
 \r
   if (!IsVerify) {\r
     AuthPayload->PayloadSize  = sizeof (IKEV2_AUTH) + SigSize;\r
@@ -775,7 +810,11 @@ Ikev2CertGenerateAuthPayload (
   }\r
 \r
   PayloadBuf = (IKEV2_AUTH *) AllocateZeroPool (AuthPayload->PayloadSize);\r
-  ASSERT (PayloadBuf != NULL);\r
+  if (PayloadBuf == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto EXIT;\r
+  }\r
+\r
   //\r
   // Fill in Auth payload.\r
   //\r
@@ -805,9 +844,6 @@ Ikev2CertGenerateAuthPayload (
   AuthPayload->PayloadType  = IKEV2_PAYLOAD_TYPE_AUTH;\r
 \r
 EXIT:\r
-  if (KeyBuf != NULL) {\r
-    FreePool (KeyBuf);\r
-  }\r
   if (Digest != NULL) {\r
     FreePool (Digest);\r
   }\r
@@ -879,7 +915,9 @@ Ikev2GenerateTsPayload (
   //\r
 \r
   TsPayload    = IkePayloadAlloc();\r
-  ASSERT (TsPayload != NULL);\r
+  if (TsPayload == NULL) {\r
+    return NULL;\r
+  }\r
 \r
   IpVersion    = ChildSa->SessionCommon.UdpService->IpVersion;\r
   //\r
@@ -890,7 +928,9 @@ Ikev2GenerateTsPayload (
   SelectorSize  = sizeof (TRAFFIC_SELECTOR) + 2 * AddrSize;\r
   TsPayloadSize = sizeof (IKEV2_TS) + SelectorSize;\r
   TsPayloadBuf = AllocateZeroPool (TsPayloadSize);\r
-  ASSERT (TsPayloadBuf != NULL);\r
+  if (TsPayloadBuf == NULL) {\r
+    goto ON_ERROR;\r
+  }\r
 \r
   TsPayload->PayloadBuf = (UINT8 *) TsPayloadBuf;\r
   TsSelector            = (TRAFFIC_SELECTOR*)(TsPayloadBuf + 1);\r
@@ -1146,7 +1186,9 @@ Ikev2GenerateNotifyPayload (
   //\r
   NotifyPayloadLen  = (UINT16) (sizeof (IKEV2_NOTIFY) + NotifyDataSize + SpiSize);\r
   Notify            = (IKEV2_NOTIFY *) AllocateZeroPool (NotifyPayloadLen);\r
-  ASSERT (Notify != NULL);\r
+  if (Notify == NULL) {\r
+    return NULL;\r
+  }\r
 \r
   //\r
   // Set Delete Payload's Generic Header\r
@@ -1177,7 +1219,11 @@ Ikev2GenerateNotifyPayload (
   // Create Payload for and set type as IKEV2_PAYLOAD_TYPE_NOTIFY\r
   //\r
   NotifyPayload = IkePayloadAlloc ();\r
-  ASSERT (NotifyPayload != NULL);\r
+  if (NotifyPayload == NULL) {\r
+    FreePool (Notify);\r
+    return NULL;\r
+  }\r
+\r
   NotifyPayload->PayloadType  = IKEV2_PAYLOAD_TYPE_NOTIFY;\r
   NotifyPayload->PayloadBuf   = (UINT8 *) Notify;\r
   NotifyPayload->PayloadSize  = NotifyPayloadLen;\r
@@ -1238,7 +1284,9 @@ Ikev2GenerateDeletePayload (
   DelPayloadLen = (UINT16) (sizeof (IKEV2_DELETE) + SpiBufSize);\r
 \r
   Del           = AllocateZeroPool (DelPayloadLen);\r
-  ASSERT (Del != NULL);\r
+  if (Del == NULL) {\r
+    return NULL;\r
+  }\r
 \r
   //\r
   // Set Delete Payload's Generic Header\r
@@ -1262,7 +1310,11 @@ Ikev2GenerateDeletePayload (
   //\r
   CopyMem (Del + 1, SpiBuf, SpiBufSize);\r
   DelPayload = IkePayloadAlloc ();\r
-  ASSERT (DelPayload != NULL);\r
+  if (DelPayload == NULL) {\r
+    FreePool (Del);\r
+    return NULL;\r
+  }\r
+\r
   DelPayload->PayloadType = IKEV2_PAYLOAD_TYPE_DELETE;\r
   DelPayload->PayloadBuf  = (UINT8 *) Del;\r
   DelPayload->PayloadSize = DelPayloadLen;\r
@@ -1418,7 +1470,7 @@ Ikev2ParserNotifyCookiePayload (
                                 in RFC 4306.\r
   @param[in]  IsRequest         To indicate create Certificate Payload or Certificate\r
                                 Request Payload. If it is TURE, create Certificate\r
-                                Payload. Otherwise, create Certificate Request Payload.\r
+                                Request Payload. Otherwise, create Certificate Payload.\r
 \r
   @retval  a Pointer to IKE Payload whose payload buffer containing the Certificate\r
            payload or Certificated Request payload.\r
@@ -1626,7 +1678,10 @@ Ikev2EncodeSa (
   // Allocate buffer for IKE_SA.\r
   //\r
   Sa = AllocateZeroPool (SaSize);\r
-  ASSERT (Sa != NULL);\r
+  if (Sa == NULL) {\r
+    return NULL;\r
+  }\r
+\r
   CopyMem (Sa, SaData, sizeof (IKEV2_SA));\r
   Sa->Header.PayloadLength  = (UINT16) sizeof (IKEV2_SA);\r
   ProposalsSize             = 0;\r
@@ -1687,7 +1742,7 @@ Ikev2EncodeSa (
       Transform->Header.NextPayload   = IKE_TRANSFORM_NEXT_PAYLOAD_MORE;\r
       Transform->Header.PayloadLength = HTONS ((UINT16)TransformSize);\r
 \r
-      if (TransformIndex == (UINTN)(ProposalData->NumTransforms - 1)) {\r
+      if (TransformIndex == ((UINT32)ProposalData->NumTransforms - 1)) {\r
         Transform->Header.NextPayload = IKE_TRANSFORM_NEXT_PAYLOAD_NONE;\r
       }\r
 \r
@@ -1819,7 +1874,11 @@ Ikev2DecodeSa (
                                TotalProposals * sizeof (IKEV2_PROPOSAL_DATA) +\r
                                TotalTransforms * sizeof (IKEV2_TRANSFORM_DATA)\r
                                );\r
-  ASSERT (SaData != NULL);\r
+  if (SaData == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto Exit;\r
+  }\r
+\r
   CopyMem (SaData, Sa, sizeof (IKEV2_SA));\r
   SaData->NumProposals        = TotalProposals;\r
   ProposalData                = (IKEV2_PROPOSAL_DATA *) (SaData + 1);\r
@@ -1852,7 +1911,11 @@ Ikev2DecodeSa (
       // SpiSize == 4\r
       //\r
       Spi = AllocateZeroPool (Proposal->SpiSize);\r
-      ASSERT (Spi != NULL);\r
+      if (Spi == NULL) {\r
+        Status = EFI_OUT_OF_RESOURCES;\r
+        goto Exit;\r
+      }\r
+\r
       CopyMem (Spi, (UINT32 *) (Proposal + 1), Proposal->SpiSize);\r
       *((UINT32*) Spi) = NTOHL (*((UINT32*) Spi));\r
       ProposalData->Spi = Spi;\r
@@ -2284,7 +2347,11 @@ Ikev2DecodePacket (
   //\r
   if (IkePacket->Header->ExchangeType == IKEV2_EXCHANGE_TYPE_INIT) {\r
     IkeHeader = AllocateZeroPool (sizeof (IKE_HEADER));\r
-    ASSERT (IkeHeader != NULL);\r
+    if (IkeHeader == NULL) {\r
+      Status = EFI_OUT_OF_RESOURCES;\r
+      goto Exit;\r
+    }\r
+\r
     CopyMem (IkeHeader, IkePacket->Header, sizeof (IKE_HEADER));\r
 \r
     //\r
@@ -2358,7 +2425,10 @@ Ikev2DecodePacket (
     // Initial IkePayload\r
     //\r
     IkePayload = IkePayloadAlloc ();\r
-    ASSERT (IkePayload != NULL);\r
+    if (IkePayload == NULL) {\r
+      Status = EFI_OUT_OF_RESOURCES;\r
+      goto Exit;\r
+    }\r
 \r
     IkePayload->PayloadType     = PayloadType;\r
     IkePayload->PayloadBuf      = (UINT8 *) PayloadHdr;\r
@@ -2466,6 +2536,9 @@ Ikev2EncodePacket (
     // Encrypt all payload and transfer IKE packet header from Host order to Network order.\r
     //\r
     Status = Ikev2EncryptPacket (SessionCommon, IkePacket);\r
+    if (EFI_ERROR (Status)) {\r
+      return Status;\r
+    }\r
   } else {\r
     //\r
     // Fill in the lenght into IkePacket header and transfer Host order to Network order.\r
@@ -2483,7 +2556,10 @@ Ikev2EncodePacket (
     if (SessionCommon->IsInitiator) {\r
       IkeSaSession->InitPacketSize = IkePacket->PayloadTotalSize + sizeof (IKE_HEADER);\r
       IkeSaSession->InitPacket     = AllocateZeroPool (IkeSaSession->InitPacketSize);\r
-      ASSERT (IkeSaSession->InitPacket != NULL);\r
+      if (IkeSaSession->InitPacket == NULL) {\r
+        return EFI_OUT_OF_RESOURCES;\r
+      }\r
+\r
       CopyMem (IkeSaSession->InitPacket, IkePacket->Header, sizeof (IKE_HEADER));\r
       PayloadTotalSize = 0;\r
       for (Entry = IkePacket->PayloadList.ForwardLink; Entry != &(IkePacket->PayloadList);) {\r
@@ -2499,7 +2575,10 @@ Ikev2EncodePacket (
     } else {\r
       IkeSaSession->RespPacketSize = IkePacket->PayloadTotalSize + sizeof(IKE_HEADER);\r
       IkeSaSession->RespPacket     = AllocateZeroPool (IkeSaSession->RespPacketSize);\r
-      ASSERT (IkeSaSession->RespPacket != NULL);\r
+      if (IkeSaSession->RespPacket == NULL) {\r
+        return EFI_OUT_OF_RESOURCES;\r
+      }\r
+\r
       CopyMem (IkeSaSession->RespPacket, IkePacket->Header, sizeof (IKE_HEADER));\r
       PayloadTotalSize = 0;\r
       for (Entry = IkePacket->PayloadList.ForwardLink; Entry != &(IkePacket->PayloadList);) {\r
@@ -2596,14 +2675,21 @@ Ikev2DecryptPacket (
   }\r
 \r
   CheckSumData = AllocateZeroPool (CheckSumSize);\r
-  ASSERT (CheckSumData != NULL);\r
+  if (CheckSumData == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto ON_EXIT;\r
+  }\r
 \r
   //\r
   // Fill in the Integrity buffer\r
   //\r
   IntegritySize   = IkePacket->PayloadTotalSize + sizeof (IKE_HEADER);\r
   IntegrityBuffer = AllocateZeroPool (IntegritySize);\r
-  ASSERT (IntegrityBuffer != NULL);\r
+  if (IntegrityBuffer == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto ON_EXIT;\r
+  }\r
+\r
   CopyMem (IntegrityBuffer, IkePacket->Header, sizeof(IKE_HEADER));\r
   CopyMem (IntegrityBuffer + sizeof (IKE_HEADER), IkePacket->PayloadsBuf, IkePacket->PayloadTotalSize);\r
 \r
@@ -2664,7 +2750,10 @@ Ikev2DecryptPacket (
   //\r
   DecryptedSize = IkePacket->PayloadTotalSize - sizeof (IKEV2_COMMON_PAYLOAD_HEADER) - IvSize - CheckSumSize;\r
   DecryptedBuf  = AllocateZeroPool (DecryptedSize);\r
-  ASSERT (DecryptedBuf != NULL);\r
+  if (DecryptedBuf == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto ON_EXIT;\r
+  }\r
 \r
   CopyMem (\r
     DecryptedBuf,\r
@@ -2811,7 +2900,10 @@ Ikev2EncryptPacket (
   CryptBlockSizeMask  = (UINT8) (CryptBlockSize - 1);\r
   EncryptedSize       = (IkePacket->PayloadTotalSize + sizeof (IKEV2_PAD_LEN) + CryptBlockSizeMask) & ~CryptBlockSizeMask;\r
   EncryptedBuf        = (UINT8 *) AllocateZeroPool (EncryptedSize);\r
-  ASSERT (EncryptedBuf != NULL);\r
+  if (EncryptedBuf == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto ON_EXIT;\r
+  }\r
 \r
   //\r
   // Copy all payload into EncryptedIkePayload\r
@@ -2878,7 +2970,10 @@ Ikev2EncryptPacket (
   //\r
   EncryptPayloadSize = sizeof(IKEV2_ENCRYPTED) + IvSize + EncryptedSize + CheckSumSize;\r
   EncryptPayloadBuf  = AllocateZeroPool (EncryptPayloadSize);\r
-  ASSERT (EncryptPayloadBuf != NULL);\r
+  if (EncryptPayloadBuf == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto ON_EXIT;\r
+  }\r
 \r
   //\r
   // Fill in Header of  Encrypted Payload\r
@@ -2965,7 +3060,10 @@ Ikev2EncryptPacket (
   // Create Encrypted Payload and add into IkePacket->PayloadList\r
   //\r
   EncryptPayload = IkePayloadAlloc ();\r
-  ASSERT (EncryptPayload != NULL);\r
+  if (EncryptPayload == NULL) {\r
+    Status = EFI_OUT_OF_RESOURCES;\r
+    goto ON_EXIT;\r
+  }\r
 \r
   //\r
   // Fill the encrypted payload into the IKE_PAYLOAD structure.\r
@@ -3000,24 +3098,6 @@ ON_EXIT:
   return Status;\r
 }\r
 \r
-/**\r
-  Save some useful payloads after accepting the Packet.\r
-\r
-  @param[in] SessionCommon   Pointer to IKEV2_SESSION_COMMON related to the operation.\r
-  @param[in] IkePacket       Pointer to received IkePacet.\r
-  @param[in] IkeType         The type used to indicate it is in IkeSa or ChildSa or Info\r
-                             exchange.\r
-\r
-**/\r
-VOID\r
-Ikev2OnPacketAccepted (\r
-  IN IKEV2_SESSION_COMMON *SessionCommon,\r
-  IN IKE_PACKET           *IkePacket,\r
-  IN UINT8                IkeType\r
-  )\r
-{\r
-  return;\r
-}\r
 \r
 /**\r
 \r
@@ -3211,7 +3291,9 @@ Ikev2SendIkePacket (
   // Transform IkePacke to NetBuf\r
   //\r
   IkePacketNetbuf = IkeNetbufFromPacket ((UINT8 *) SessionCommon, IkePacket, IkeType);\r
-  ASSERT (IkePacketNetbuf != NULL);\r
+  if (IkePacketNetbuf == NULL) {\r
+    return EFI_OUT_OF_RESOURCES;\r
+  }\r
 \r
   ZeroMem (&EndPoint, sizeof (UDP_END_POINT));\r
   EndPoint.RemotePort = IKE_DEFAULT_PORT;\r