After commit 57df17fe26, some static check reports suspicous NULL pointer
deference at line:

  Entry->MachineType = Entry->Emulator->MachineType;
                       ^^^^^^^^^^^^^^^

within function PeCoffEmuProtocolNotify().

However, 'Entry->Emulator' is guaranteed to have a non-NULL value when
previous call to the CoreHandleProtocol() returns EFI_SUCCESS.

Thus, in order to please the static checker, this commit will add an
ASSERT right before the false-positive NULL pointer dereference report.

Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Liming Gao <liming....@intel.com>
Cc: Jian J Wang <jian.j.w...@intel.com>
Signed-off-by: Hao Wu <hao.a...@intel.com>
---
 MdeModulePkg/Core/Dxe/Image/Image.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c 
b/MdeModulePkg/Core/Dxe/Image/Image.c
index 08306a73fd..546fa96eee 100644
--- a/MdeModulePkg/Core/Dxe/Image/Image.c
+++ b/MdeModulePkg/Core/Dxe/Image/Image.c
@@ -166,6 +166,13 @@ PeCoffEmuProtocolNotify (
                (VOID **)&Entry->Emulator
                );
     ASSERT_EFI_ERROR (Status);
+    //
+    // When the above CoreHandleProtocol() call returns with EFI_SUCCESS,
+    // 'Entry->Emulator' is guaranteed to have a non-NULL value.
+    // The below ASSERT is for addressing a false positive NULL pointer
+    // dereference issue raised from static analysis.
+    //
+    ASSERT (Entry->Emulator != NULL)
 
     Entry->MachineType = Entry->Emulator->MachineType;
 
-- 
2.12.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#39362): https://edk2.groups.io/g/devel/message/39362
Mute This Topic: https://groups.io/mt/31271609/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to