From 38b15ebe4fd5888493131d30fc31833a5e9a7d36 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 20 Mar 2017 11:24:23 +0100 Subject: [PATCH] MdeModulePkg/Core/Dxe: downgrade "CodeSegmentCount is 0" msg to DEBUG_WARN UEFI executables that consist of a single read+write+exec PE/COFF section trigger this message, but such a binary layout isn't actually an error. The image can be launched alright, only image protection cannot be applied to it fully. One example that elicits the message is (some) Linux kernels (with the EFI stub of course). Cc: Ard Biesheuvel Cc: Feng Tian Cc: Jiewen Yao Cc: Star Zeng Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Acked-by: Ard Biesheuvel Reviewed-by: Jiewen Yao --- MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c index 7689c794a8..451cc35b92 100644 --- a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c +++ b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c @@ -580,10 +580,18 @@ ProtectUefiImageCommon ( } if (ImageRecord->CodeSegmentCount == 0) { - DEBUG ((DEBUG_ERROR, "!!!!!!!! ProtectUefiImageCommon - CodeSegmentCount is 0 !!!!!!!!\n")); + // + // If a UEFI executable consists of a single read+write+exec PE/COFF + // section, that isn't actually an error. The image can be launched + // alright, only image protection cannot be applied to it fully. + // + // One example that elicits this is (some) Linux kernels (with the EFI stub + // of course). + // + DEBUG ((DEBUG_WARN, "!!!!!!!! ProtectUefiImageCommon - CodeSegmentCount is 0 !!!!!!!!\n")); PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress); if (PdbPointer != NULL) { - DEBUG ((DEBUG_ERROR, "!!!!!!!! Image - %a !!!!!!!!\n", PdbPointer)); + DEBUG ((DEBUG_WARN, "!!!!!!!! Image - %a !!!!!!!!\n", PdbPointer)); } goto Finish; } -- 2.39.2