#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
FreePool(FmpImageInfoBuf);\r
}\r
\r
+ FreePool (HandleBuffer);\r
+\r
return ;\r
}\r
\r
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
FreePool(FmpImageInfoBuf);\r
}\r
\r
+ FreePool (HandleBuffer);\r
+\r
if (MatchedNumberOfHandles == 0) {\r
return EFI_NOT_FOUND;\r
}\r
&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
}\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