]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c
MdeModulePkg/BmBoot: Report status when fail to load/start boot option
[mirror_edk2.git] / MdeModulePkg / Library / DxeCapsuleLibFmp / DxeCapsuleLib.c
index 85848279d44c370861302010aabd9dca6861a302..f56809bb7019de467a887d9bb6899129a983e573 100644 (file)
@@ -39,7 +39,6 @@
 #include <Library/CapsuleLib.h>\r
 #include <Library/DevicePathLib.h>\r
 #include <Library/UefiLib.h>\r
-#include <Library/PcdLib.h>\r
 #include <Library/BmpSupportLib.h>\r
 \r
 #include <Protocol/GraphicsOutput.h>\r
@@ -765,7 +764,7 @@ GetFmpHandleBufferByType (
             MatchedHandleBuffer[MatchedNumberOfHandles] = HandleBuffer[Index];\r
           }\r
           if (MatchedResetRequiredBuffer != NULL) {\r
-            MatchedResetRequiredBuffer[MatchedNumberOfHandles] = (((TempFmpImageInfo->AttributesSupported & \r
+            MatchedResetRequiredBuffer[MatchedNumberOfHandles] = (((TempFmpImageInfo->AttributesSupported &\r
                                                                  IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0) &&\r
                                                                  ((TempFmpImageInfo->AttributesSetting &\r
                                                                  IMAGE_ATTRIBUTE_RESET_REQUIRED) != 0));\r
@@ -1225,7 +1224,9 @@ ProcessFmpCapsuleImage (
                &HandleBuffer,\r
                &ResetRequiredBuffer\r
                );\r
-    if (EFI_ERROR(Status)) {\r
+    if (EFI_ERROR(Status) ||\r
+        (HandleBuffer == NULL) ||\r
+        (ResetRequiredBuffer == NULL)) {\r
       NotReady = TRUE;\r
       RecordFmpCapsuleStatus (\r
         NULL,\r
@@ -1420,6 +1421,12 @@ SupportCapsuleImage (
   }\r
 \r
   if (IsFmpCapsule(CapsuleHeader)) {\r
+    //\r
+    // Fake capsule header is valid case in QueryCapsuleCpapbilities().\r
+    //\r
+    if (CapsuleHeader->HeaderSize == CapsuleHeader->CapsuleImageSize) {\r
+      return EFI_SUCCESS;\r
+    }\r
     //\r
     // Check layout of FMP capsule\r
     //\r