audk/MdeModulePkg/Core/Dxe
Jian J Wang 63ebde8ef6 MdeModulePkg/Core: add freed-memory guard feature
Freed-memory guard is used to detect UAF (Use-After-Free) memory issue
which is illegal access to memory which has been freed. The principle
behind is similar to pool guard feature, that is we'll turn all pool
memory allocation to page allocation and mark them to be not-present
once they are freed.

This also implies that, once a page is allocated and freed, it cannot
be re-allocated. This will bring another issue, which is that there's
risk that memory space will be used out. To address it, the memory
service add logic to put part (at most 64 pages a time) of freed pages
back into page pool, so that the memory service can still have memory
to allocate, when all memory space have been allocated once. This is
called memory promotion. The promoted pages are always from the eldest
pages which haven been freed.

This feature brings another problem is that memory map descriptors will
be increased enormously (200+ -> 2000+). One of change in this patch
is to update MergeMemoryMap() in file PropertiesTable.c to allow merge
freed pages back into the memory map. Now the number can stay at around
510.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2018-10-26 10:30:35 +08:00
..
Dispatcher MdeModulePkg DxeCore: Handle multiple FV images in one FV file 2018-09-03 17:04:58 +08:00
DxeMain MdeModulePkg Core/Dxe: Remove redundant functions 2018-08-21 16:29:04 +08:00
Event MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
FwVol MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
FwVolBlock MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
Gcd MdeModulePkg/Core: prevent re-acquire GCD memory lock 2018-10-26 10:30:34 +08:00
Hand MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
Image MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
Library
Mem MdeModulePkg/Core: add freed-memory guard feature 2018-10-26 10:30:35 +08:00
Misc MdeModulePkg/Core: add freed-memory guard feature 2018-10-26 10:30:35 +08:00
SectionExtraction MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
DxeCore.uni MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
DxeCoreExtra.uni MdeModulePkg: Clean up source files 2018-06-28 11:19:45 +08:00
DxeMain.h MdeModulePkg Core/Dxe: Remove redundant functions 2018-08-21 16:29:04 +08:00
DxeMain.inf MdeModulePkg: Removing ipf which is no longer supported from edk2. 2018-09-06 15:25:16 +08:00