audk/MdeModulePkg/Core
Jian J Wang a6a0a59756 MdeModulePkg/Core: fix feature conflict between NX and heap guard
Considering following scenario (both NX memory protection and heap guard
are enabled):

   1. Allocate 3 pages. The attributes of adjacent memory pages will be

      |NOT-PRESENT|  present  |  present  |  present  |NOT-PRESENT|

   2. Free the middle page. The attributes of adjacent memory pages should be

      |NOT-PRESENT|  present  |NOT-PRESENT|  present  |NOT-PRESENT|

      But the NX feature will overwrite the attributes of middle page. So it
      looks still like below, which is wrong.

      |NOT-PRESENT|  present  |  PRESENT  |  present  |NOT-PRESENT|

The solution is checking the first and/or last page of a memory block to be
marked as NX, and skipping them if they are Guard pages.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2018-02-02 09:50:16 +08:00
..
Dxe MdeModulePkg/Core: fix feature conflict between NX and heap guard 2018-02-02 09:50:16 +08:00
DxeIplPeim MdeModulePkg DxeIpl: remove the hard code alignment adjustment in Decompress() 2018-01-19 13:20:29 +08:00
Pei MdeModulePkg PeiCore: Update debug message to print FV handle correctly 2017-12-28 15:21:39 +08:00
PiSmmCore MdeModulePkg PiSmmCore: Set ForwardLink to NULL in RemoveOldEntry() 2018-01-31 17:23:36 +08:00
RuntimeDxe MdeModulePkg: Update RuntimeDxe Crc32 to check the input parameter 2017-10-16 11:23:07 +08:00