mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-07 19:45:07 +02:00
Update the heap migration logic to avoid memory overflow.
Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15036 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d958a7e0bc
commit
18d3e28062
@ -661,6 +661,7 @@ PeiDispatcher (
|
||||
PEIM_FILE_HANDLE_EXTENDED_DATA ExtendedData;
|
||||
EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI *TemporaryRamSupportPpi;
|
||||
UINT64 NewStackSize;
|
||||
UINTN HeapTemporaryRamSize;
|
||||
EFI_PHYSICAL_ADDRESS BaseOfNewHeap;
|
||||
EFI_PHYSICAL_ADDRESS TopOfNewStack;
|
||||
EFI_PHYSICAL_ADDRESS TopOfOldStack;
|
||||
@ -1018,7 +1019,9 @@ PeiDispatcher (
|
||||
//
|
||||
// Migrate Heap
|
||||
//
|
||||
CopyMem ((UINT8 *) (UINTN) BaseOfNewHeap, (UINT8 *) PeiTemporaryRamBase, PeiTemporaryRamSize);
|
||||
HeapTemporaryRamSize = (UINTN) (Private->HobList.HandoffInformationTable->EfiFreeMemoryBottom - Private->HobList.HandoffInformationTable->EfiMemoryBottom);
|
||||
ASSERT (BaseOfNewHeap + HeapTemporaryRamSize <= Private->FreePhysicalMemoryTop);
|
||||
CopyMem ((UINT8 *) (UINTN) BaseOfNewHeap, (UINT8 *) PeiTemporaryRamBase, HeapTemporaryRamSize);
|
||||
|
||||
//
|
||||
// Migrate Stack
|
||||
|
Loading…
x
Reference in New Issue
Block a user