//\r
// Loop through the set of EFI_FIRMWARE_IMAGE_DESCRIPTORs.\r
//\r
- FmpImageInfoBuf = OriginalFmpImageInfoBuf;\r
MatchFound = FALSE;\r
- for (Index2 = 0; Index2 < FmpImageInfoCount; Index2++) {\r
- for (Index3 = 0; Index3 < mSystemFmpPrivate->DescriptorCount; Index3++) {\r
- MatchFound = CompareGuid (\r
- &FmpImageInfoBuf->ImageTypeId,\r
- &mSystemFmpPrivate->ImageDescriptor[Index3].ImageTypeId\r
- );\r
+ if (OriginalFmpImageInfoBuf != NULL) {\r
+ FmpImageInfoBuf = OriginalFmpImageInfoBuf;\r
+\r
+ for (Index2 = 0; Index2 < FmpImageInfoCount; Index2++) {\r
+ for (Index3 = 0; Index3 < mSystemFmpPrivate->DescriptorCount; Index3++) {\r
+ MatchFound = CompareGuid (\r
+ &FmpImageInfoBuf->ImageTypeId,\r
+ &mSystemFmpPrivate->ImageDescriptor[Index3].ImageTypeId\r
+ );\r
+ if (MatchFound) {\r
+ break;\r
+ }\r
+ }\r
if (MatchFound) {\r
break;\r
}\r
+ //\r
+ // Increment the buffer pointer ahead by the size of the descriptor\r
+ //\r
+ FmpImageInfoBuf = (EFI_FIRMWARE_IMAGE_DESCRIPTOR *)(((UINT8 *)FmpImageInfoBuf) + DescriptorSize);\r
}\r
if (MatchFound) {\r
- break;\r
+ HandleBuffer[*HandleCount] = HandleBuffer[Index];\r
+ (*HandleCount)++;\r
}\r
- //\r
- // Increment the buffer pointer ahead by the size of the descriptor\r
- //\r
- FmpImageInfoBuf = (EFI_FIRMWARE_IMAGE_DESCRIPTOR *)(((UINT8 *)FmpImageInfoBuf) + DescriptorSize);\r
- }\r
- if (MatchFound) {\r
- HandleBuffer[*HandleCount] = HandleBuffer[Index];\r
- (*HandleCount)++;\r
- }\r
\r
- FreePool (OriginalFmpImageInfoBuf);\r
+ FreePool (OriginalFmpImageInfoBuf);\r
+ }\r
}\r
\r
if ((*HandleCount) == 0) {\r