]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/DxeCapsuleLibFmp/CapsuleOnDisk.c
MdeModulePkg/DxeCapsuleLibFmp: Add missing NULL pointer check.
[mirror_edk2.git] / MdeModulePkg / Library / DxeCapsuleLibFmp / CapsuleOnDisk.c
index 66c9be8e1fe9f529dcf2430e042d86463ea4de6c..3193ca8f4d6ff0147de0f49327126b5695fee9e0 100644 (file)
@@ -25,6 +25,9 @@ IsCapsuleNameCapsule (
   Check the integrity of the capsule name capsule.\r
   If the capsule is vaild, return the physical address of each capsule name string.\r
 \r
   Check the integrity of the capsule name capsule.\r
   If the capsule is vaild, return the physical address of each capsule name string.\r
 \r
+  This routine assumes the capsule has been validated by IsValidCapsuleHeader(), so\r
+  capsule memory overflow is not going to happen in this routine.\r
+\r
   @param[in]  CapsuleHeader   Pointer to the capsule header of a capsule name capsule.\r
   @param[out] CapsuleNameNum  Number of capsule name.\r
 \r
   @param[in]  CapsuleHeader   Pointer to the capsule header of a capsule name capsule.\r
   @param[out] CapsuleNameNum  Number of capsule name.\r
 \r
@@ -65,6 +68,9 @@ ValidateCapsuleNameCapsuleIntegrity (
   //\r
   if (((UINTN) CapsuleNameBufStart & BIT0) != 0) {\r
     CapsuleNameBufStart = AllocateCopyPool (CapsuleHeader->CapsuleImageSize - CapsuleHeader->HeaderSize, CapsuleNameBufStart);\r
   //\r
   if (((UINTN) CapsuleNameBufStart & BIT0) != 0) {\r
     CapsuleNameBufStart = AllocateCopyPool (CapsuleHeader->CapsuleImageSize - CapsuleHeader->HeaderSize, CapsuleNameBufStart);\r
+    if (CapsuleNameBufStart == NULL) {\r
+      return NULL;\r
+    }\r
   }\r
 \r
   CapsuleNameBufEnd = CapsuleNameBufStart + CapsuleHeader->CapsuleImageSize - CapsuleHeader->HeaderSize;\r
   }\r
 \r
   CapsuleNameBufEnd = CapsuleNameBufStart + CapsuleHeader->CapsuleImageSize - CapsuleHeader->HeaderSize;\r