MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
The memory protection code may be invoked to unprotect a driver when
DxeCore has not completed loading yet, in which case ImageAddress may
still be zero. So ignore the PdbPointer in this case, to prevent
PeCoffLoaderGetPdbPointer() from ASSERT()ing on a NULL value.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c
index 7689c794a8ad..6ecbb311a8c3 100644
--- a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c
+++ b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c
@@ -462,9 +462,12 @@ ProtectUefiImageCommon (
ImageAddress = LoadedImage->ImageBase;
- PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);
- if (PdbPointer != NULL) {
- DEBUG ((DEBUG_VERBOSE, " Image - %a\n", PdbPointer));
+ PdbPointer = NULL;
+ if (ImageAddress != 0) {
+ PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);
+ if (PdbPointer != NULL) {
+ DEBUG ((DEBUG_VERBOSE, " Image - %a\n", PdbPointer));
+ }
}
//
--
2.7.4
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard: On this case, UnprotectUefiImage() should be skipped, because the image is not loaded. Thanks Liming >-----Original Message----- >From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ard >Biesheuvel >Sent: Tuesday, March 21, 2017 4:45 AM >To: edk2-devel@lists.01.org; Yao, Jiewen <jiewen.yao@intel.com> >Cc: Tian, Feng <feng.tian@intel.com>; Zeng, Star <star.zeng@intel.com>; Ard >Biesheuvel <ard.biesheuvel@linaro.org> >Subject: [edk2] [PATCH] MdeModulePkg/DxeCore: ignore PdbPointer if >ImageAddress == 0 > >The memory protection code may be invoked to unprotect a driver when >DxeCore has not completed loading yet, in which case ImageAddress may >still be zero. So ignore the PdbPointer in this case, to prevent >PeCoffLoaderGetPdbPointer() from ASSERT()ing on a NULL value. > >Contributed-under: TianoCore Contribution Agreement 1.0 >Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> >--- > MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > >diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c >b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c >index 7689c794a8ad..6ecbb311a8c3 100644 >--- a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c >+++ b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c >@@ -462,9 +462,12 @@ ProtectUefiImageCommon ( > > ImageAddress = LoadedImage->ImageBase; > >- PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) >ImageAddress); >- if (PdbPointer != NULL) { >- DEBUG ((DEBUG_VERBOSE, " Image - %a\n", PdbPointer)); >+ PdbPointer = NULL; >+ if (ImageAddress != 0) { >+ PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) >ImageAddress); >+ if (PdbPointer != NULL) { >+ DEBUG ((DEBUG_VERBOSE, " Image - %a\n", PdbPointer)); >+ } > } > > // >-- >2.7.4 > >_______________________________________________ >edk2-devel mailing list >edk2-devel@lists.01.org >https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.