REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2669
Updates ReportDispatcher() to take the size in the HeaderSize field in
a EFI_STATUS_CODE_DATA element into account when walking the data buffer.
This size will cause the header size to differ from the compiled sizeof
header.
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Kun Qin <Kun.Qin@microsoft.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
- Address += (sizeof (RSC_DATA_ENTRY) + RscData->Data.Size);\r
+ Address += (OFFSET_OF (RSC_DATA_ENTRY, Data) + RscData->Data.HeaderSize + RscData->Data.Size);\r
Address = ALIGN_VARIABLE (Address);\r
}\r
\r
Address = ALIGN_VARIABLE (Address);\r
}\r
\r
RscData = (RSC_DATA_ENTRY *) (UINTN) CallbackEntry->EndPointer;\r
CallbackEntry->EndPointer += sizeof (RSC_DATA_ENTRY);\r
if (Data != NULL) {\r
RscData = (RSC_DATA_ENTRY *) (UINTN) CallbackEntry->EndPointer;\r
CallbackEntry->EndPointer += sizeof (RSC_DATA_ENTRY);\r
if (Data != NULL) {\r
- CallbackEntry->EndPointer += Data->Size;\r
+ CallbackEntry->EndPointer += (Data->Size + Data->HeaderSize - sizeof (EFI_STATUS_CODE_DATA));\r