]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/IpSecDxe/IkePacket.c
NetworkPkg: Avoid potential NULL pointer dereference
[mirror_edk2.git] / NetworkPkg / IpSecDxe / IkePacket.c
index 8fd395d43fa581c37e9ed91675b4a686107abe7a..14dbb9d5d67ec56f08b19168b865a2e6e9705b23 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   IKE Packet related operation.\r
 \r
-  Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2010 - 2016, 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
@@ -195,6 +195,9 @@ IkeNetbufFromPacket (
   LIST_ENTRY    *PacketEntry;\r
   LIST_ENTRY    *Entry;\r
   IKE_PAYLOAD   *IkePayload;\r
+  EFI_STATUS    RetStatus;\r
+\r
+  RetStatus = EFI_SUCCESS;\r
 \r
   if (!IkePacket->IsEncoded) {\r
     IkePacket->IsEncoded = TRUE;\r
@@ -203,10 +206,14 @@ IkeNetbufFromPacket (
     // Encryption payloads if needed\r
     //\r
     if (((IKEV2_SESSION_COMMON *) SessionCommon)->IkeVer == 2) {\r
-      Ikev2EncodePacket ((IKEV2_SESSION_COMMON *) SessionCommon, IkePacket, IkeType);\r
+      RetStatus = Ikev2EncodePacket ((IKEV2_SESSION_COMMON *) SessionCommon, IkePacket, IkeType);\r
+      if (EFI_ERROR (RetStatus)) {\r
+        return NULL;\r
+      }\r
+      \r
     } else {\r
       //\r
-      //If IKEv1 support, check it here.\r
+      // If IKEv1 support, check it here.\r
       //\r
       return NULL;\r
     }\r