C does not allow casting to or dereferencing incompatible pointer
types. Use the ImageInfoType member of the union first to determine
the data type before dereferencing NormalImage.

Cc: Leif Lindholm <l...@nuviainc.com>
Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
Cc: Vitaly Cheptsov <vit9...@protonmail.com>
Signed-off-by: Marvin Häuser <mhaeu...@posteo.de>
---
 ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerUefi.c | 4 
++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerUefi.c 
b/ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerUefi.c
index e9fea4038252..9befb6d4db9b 100644
--- a/ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerUefi.c
+++ b/ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerUefi.c
@@ -51,8 +51,8 @@ GetImageName (
 

   Address = (CHAR8 *)(UINTN)FaultAddress;

   for (Entry = 0; Entry < DebugTableHeader->TableSize; Entry++, DebugTable++) {

-    if (DebugTable->NormalImage != NULL) {

-      if ((DebugTable->NormalImage->ImageInfoType == 
EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL) &&

+    if (DebugTable->ImageInfoType != NULL) {

+      if ((*DebugTable->ImageInfoType == EFI_DEBUG_IMAGE_INFO_TYPE_NORMAL) &&

           (DebugTable->NormalImage->LoadedImageProtocolInstance != NULL)) {

         if ((Address >= (CHAR8 
*)DebugTable->NormalImage->LoadedImageProtocolInstance->ImageBase) &&

             (Address <= ((CHAR8 
*)DebugTable->NormalImage->LoadedImageProtocolInstance->ImageBase + 
DebugTable->NormalImage->LoadedImageProtocolInstance->ImageSize))) {

-- 
2.31.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#78901): https://edk2.groups.io/g/devel/message/78901
Mute This Topic: https://groups.io/mt/84754076/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to