Reviewed-by: [email protected] > -----Original Message----- > From: Wang, Jian J > Sent: Monday, December 18, 2017 4:40 PM > To: [email protected] > Cc: Zeng, Star <[email protected]>; Dong, Eric <[email protected]>; Yao, > Jiewen <[email protected]> > Subject: [PATCH] MdeModulePkg/Core: Fix incorrect memory map generated in > a rare case > > The root cause is that mImagePropertiesPrivateData.CodeSegmentCountMax > was > not updated with correct value due to the fact that SortImageRecord() called > before might change the content of current ImageRecord. This will in turn > cause incorrect memory map entries generated in SplitTable(). > > Cc: Star Zeng <[email protected]> > Cc: Eric Dong <[email protected]> > Cc: Jiewen Yao <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Jian J Wang <[email protected]> > --- > MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c | 4 ++-- > MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c > b/MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c > index 75d9b14c1f..a84507df95 100644 > --- a/MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c > +++ b/MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c > @@ -1229,12 +1229,12 @@ InsertImageRecord ( > InsertTailList (&mImagePropertiesPrivateData.ImageRecordList, > &ImageRecord->Link); > mImagePropertiesPrivateData.ImageRecordCount++; > > - SortImageRecord (); > - > if (mImagePropertiesPrivateData.CodeSegmentCountMax < > ImageRecord->CodeSegmentCount) { > mImagePropertiesPrivateData.CodeSegmentCountMax = > ImageRecord->CodeSegmentCount; > } > > + SortImageRecord (); > + > Finish: > return ; > } > diff --git a/MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c > b/MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c > index e3c505ef18..36ccf65fa3 100644 > --- a/MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c > +++ b/MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c > @@ -1214,12 +1214,12 @@ SmmInsertImageRecord ( > InsertTailList (&mImagePropertiesPrivateData.ImageRecordList, > &ImageRecord->Link); > mImagePropertiesPrivateData.ImageRecordCount++; > > - SortImageRecord (); > - > if (mImagePropertiesPrivateData.CodeSegmentCountMax < > ImageRecord->CodeSegmentCount) { > mImagePropertiesPrivateData.CodeSegmentCountMax = > ImageRecord->CodeSegmentCount; > } > > + SortImageRecord (); > + > Finish: > return ; > } > -- > 2.15.1.windows.2
_______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

