{\r
UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGES *PciRootBridges;\r
UINTN Index;\r
+ UINTN Length;\r
Index = 0;\r
PciRootBridges = (UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGES *) GET_GUID_HOB_DATA (HobRaw);\r
- ASSERT (HobLength >= sizeof (UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGES));\r
+ Length = sizeof (UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGES) + PciRootBridges->Count * sizeof (UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGE);\r
+ ASSERT (HobLength >= Length);\r
DEBUG ((DEBUG_INFO, " Revision = 0x%x\n", PciRootBridges->Header.Revision));\r
DEBUG ((DEBUG_INFO, " Length = 0x%x\n", PciRootBridges->Header.Length));\r
DEBUG ((DEBUG_INFO, " Count = 0x%x\n", PciRootBridges->Count));\r
{\r
UNIVERSAL_PAYLOAD_EXTRA_DATA *ExtraData;\r
UINTN Index;\r
+ UINTN Length;\r
\r
Index = 0;\r
ExtraData = (UNIVERSAL_PAYLOAD_EXTRA_DATA *) GET_GUID_HOB_DATA (HobRaw);\r
- ASSERT (HobLength >= ExtraData->Header.Length);\r
+ Length = sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA) + ExtraData->Count * sizeof (UNIVERSAL_PAYLOAD_EXTRA_DATA_ENTRY);\r
+ ASSERT (HobLength >= Length);\r
DEBUG ((DEBUG_INFO, " Revision = 0x%x\n", ExtraData->Header.Revision));\r
DEBUG ((DEBUG_INFO, " Length = 0x%x\n", ExtraData->Header.Length));\r
DEBUG ((DEBUG_INFO, " Count = 0x%x\n", ExtraData->Count));\r
for (Index = 0; Index < ARRAY_SIZE (GuidHobPrintHandleTable); Index++) {\r
if (CompareGuid (&Hob.Guid->Name, GuidHobPrintHandleTable[Index].Guid)) {\r
DEBUG ((DEBUG_INFO, " Guid = %a\n", GuidHobPrintHandleTable[Index].GuidName));\r
- Status = GuidHobPrintHandleTable[Index].PrintHandler (Hob.Raw, Hob.Header->HobLength);\r
+ Status = GuidHobPrintHandleTable[Index].PrintHandler (Hob.Raw, GET_GUID_HOB_DATA_SIZE (Hob.Raw));\r
return Status;\r
}\r
}\r