From ab3f3d7027483f030b92a665c92d5b07eeee2297 Mon Sep 17 00:00:00 2001 From: Hao Wu Date: Thu, 28 Sep 2017 09:11:36 +0800 Subject: [PATCH] MdeModulePkg/DxeCore: Add comments for the ASSERT to check NULL ptr Commit 8932679df5be046feba30fae80776c5815232a08 adds an ASSERT for checking NULL pointer dereference. The ASSERT added here is for addressing a false positive NULL pointer dereference issue raised from static analysis. This commit adds comments to clarify the reason for using ASSERT as the check. Cc: Star Zeng Cc: Michael D Kinney Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Hao Wu Reviewed-by: Jiewen Yao --- MdeModulePkg/Core/Dxe/Hand/Handle.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Core/Dxe/Hand/Handle.c b/MdeModulePkg/Core/Dxe/Hand/Handle.c index 2db441725c..86a4065733 100644 --- a/MdeModulePkg/Core/Dxe/Hand/Handle.c +++ b/MdeModulePkg/Core/Dxe/Hand/Handle.c @@ -1174,11 +1174,19 @@ Done: // except EFI_ALREADY_STARTED and EFI_UNSUPPORTED. // if (!EFI_ERROR (Status) || Status == EFI_ALREADY_STARTED) { + // + // According to above logic, if 'Prot' is NULL, then the 'Status' must be + // EFI_UNSUPPORTED. Here the 'Status' is not EFI_UNSUPPORTED, so 'Prot' + // must be not NULL. + // + // The ASSERT here is for addressing a false positive NULL pointer + // dereference issue raised from static analysis. + // + ASSERT (Prot != NULL); // // EFI_ALREADY_STARTED is not an error for bus driver. // Return the corresponding protocol interface. // - ASSERT (Prot != NULL); *Interface = Prot->Interface; } else if (Status == EFI_UNSUPPORTED) { //