MdeModulePkg/Core/Dxe: free page 0 after disabling NULL pointer detection

To solve access issue reported by BZ1885, page 0 will be allocated to
avoid misuses if NULL pointer detection is enabled. It should be better
to be freed after EndOfDxe if BIT7 of PcdNullPointerDetectionPropertyMask
is set, because NULL pointer detection is no longer available after
EndOfDxe and there will be no access conflict.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1885
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
Jian J Wang 2019-11-06 21:13:33 +00:00 committed by Jian J Wang
parent f9d0e5daa0
commit fb92fe9e18
1 changed files with 5 additions and 0 deletions

View File

@ -1094,6 +1094,11 @@ DisableNullDetectionAtTheEndOfDxe (
);
ASSERT_EFI_ERROR (Status);
//
// Page 0 might have be allocated to avoid misuses. Free it here anyway.
//
CoreFreePages (0, 1);
CoreCloseEvent (Event);
DEBUG ((DEBUG_INFO, "DisableNullDetectionAtTheEndOfDxe(): end\r\n"));