Message ID | 1487787898-5222-2-git-send-email-ard.biesheuvel@linaro.org |
---|---|
State | New |
Headers | show |
Series | RFC: increased memory protection | expand |
diff --git a/MdeModulePkg/Core/Dxe/Mem/Page.c b/MdeModulePkg/Core/Dxe/Mem/Page.c index bda4f6397e91..b0939c596991 100644 --- a/MdeModulePkg/Core/Dxe/Mem/Page.c +++ b/MdeModulePkg/Core/Dxe/Mem/Page.c @@ -773,7 +773,8 @@ CoreConvertPagesEx ( // // Debug code - verify conversion is allowed // - if (!(NewType == EfiConventionalMemory ? 1 : 0) ^ (Entry->Type == EfiConventionalMemory ? 1 : 0)) { + if (!(NewType == EfiConventionalMemory ? 1 : 0) ^ (Entry->Type == EfiConventionalMemory ? 1 : 0) && + !(NewType == EfiBootServicesCode && Entry->Type == EfiBootServicesData)) { DEBUG ((DEBUG_ERROR | DEBUG_PAGE, "ConvertPages: Incompatible memory types\n")); return EFI_NOT_FOUND; }
Unlike all other PE/COFF images loaded after it, the DXE core is loaded into BootServicesData memory rather than BootServicesCode memory, due to the fact that the PEI phase memory allocation routines only distinguish between boot-time and runtime. So in preparation of adding support for restricted permissions, allow the direct conversion of BootServicesData to BootServicesCode. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- MdeModulePkg/Core/Dxe/Mem/Page.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel