audk/MdeModulePkg/Core/Dxe
Jian J Wang c44218e5f4 MdeModulePkg/Core: Fix heap guard issues
Three issues addressed here:

a. Make NX memory protection and heap guard to be compatible
The solution is to check PcdDxeNxMemoryProtectionPolicy in Heap Guard to
see if the free memory should be set to NX, and set the Guard page to NX
before it's freed back to memory pool. This can solve the issue which NX
setting would be overwritten by Heap Guard feature in certain
configuration.

b. Returned pool address was not 8-byte aligned sometimes
This happened only when BIT7 is not set in PcdHeapGuardPropertyMask. Since
8-byte alignment is UEFI spec required, letting allocated pool adjacent to
tail guard page cannot be guaranteed.

c. NULL address handling due to allocation failure
When allocation failure, normally a NULL will be returned. But Heap Guard
code will still try to adjust the starting address of it, which will cause
a non-NULL pointer returned.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
2017-12-26 18:07:27 +08:00
..
Dispatcher MdeModulePkg DxeCore: Support USED_SIZE FV_EXT_TYPE 2017-12-01 09:36:59 +08:00
DxeMain MdeModulePkg/Core/Dxe: Call new API InitializeCpuExceptionHandlersEx instead 2017-12-08 14:38:51 +08:00
Event MdeModulePkg/Tpl: Fix negative value left shift 2017-09-29 16:14:17 +08:00
FwVol MdeModulePkg Core: Propagate PEI-phase FV authentication status to DXE 2017-10-10 20:54:42 +08:00
FwVolBlock MdeModulePkg Core: Propagate PEI-phase FV authentication status to DXE 2017-10-10 20:54:42 +08:00
Gcd MdeModulePkg: Update DxeCore to consume PI EfiGcdMemoryTypePersistent 2017-10-10 14:19:18 +08:00
Hand MdeModulePkg/DxeCore: Add comments for the ASSERT to check NULL ptr 2017-10-09 10:45:31 +08:00
Image MdeModulePkg/Core/Dxe: Remove extra connects for UEFI Applications 2017-11-13 09:56:49 -08:00
Library Update the copyright notice format 2010-04-24 09:49:11 +00:00
Mem MdeModulePkg/Core: Fix heap guard issues 2017-12-26 18:07:27 +08:00
Misc MdeModulePkg/Core: Fix heap guard issues 2017-12-26 18:07:27 +08:00
SectionExtraction MdeModulePkg DxeCore: Only free ScratchBuffer when it is not NULL 2017-06-26 13:17:16 +08:00
DxeCore.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
DxeCoreExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
DxeMain.h MdeModulePkg/Core: Merge memory map after filtering paging capability 2017-11-28 09:25:32 +08:00
DxeMain.inf MdeModulePkg/Core: Add missing header files into inf 2017-11-24 08:35:29 +08:00