MdeModulePkg PiSmmCore: Set ForwardLink to NULL in RemoveOldEntry()
"Entry->Link.ForwardLink = NULL;" is present in RemoveMemoryMapEntry()
for DxeCore, that is correct.
"Entry->Link.ForwardLink = NULL;" is absent in RemoveOldEntry()
for PiSmmCore, that is incorrect.
Without this fix, when FromStack in Entry is TRUE,
the "InsertTailList (&mMapStack[mMapDepth].Link, &Entry->Link);" in
following calling to CoreFreeMemoryMapStack() will fail as the entry
at mMapStack[mMapDepth] actually has been removed from the list.
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
(cherry picked from commit e434be3c9c
)
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
SMM Memory page management functions.
|
SMM Memory page management functions.
|
||||||
|
|
||||||
Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials are licensed and made available
|
This program and the accompanying materials are licensed and made available
|
||||||
under the terms and conditions of the BSD License which accompanies this
|
under the terms and conditions of the BSD License which accompanies this
|
||||||
distribution. The full text of the license may be found at
|
distribution. The full text of the license may be found at
|
||||||
@ -246,6 +246,8 @@ RemoveOldEntry (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
RemoveEntryList (&Entry->Link);
|
RemoveEntryList (&Entry->Link);
|
||||||
|
Entry->Link.ForwardLink = NULL;
|
||||||
|
|
||||||
if (!Entry->FromStack) {
|
if (!Entry->FromStack) {
|
||||||
InsertTailList (&mFreeMemoryMapEntryList, &Entry->Link);
|
InsertTailList (&mFreeMemoryMapEntryList, &Entry->Link);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user