Reviewed-by: Star Zeng <[email protected]>

-----Original Message-----
From: Bi, Dandan 
Sent: Wednesday, November 7, 2018 10:53 PM
To: [email protected]
Cc: Gao, Liming <[email protected]>; Dong, Eric <[email protected]>; Zeng, 
Star <[email protected]>; Wu, Hao A <[email protected]>
Subject: [patch] MdeModulePkg/DisplayEngine: Remove useless NULL ptr check for 
NewPos

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1306

In function UiDisplayMenu, the NewPos ptr which used to point to the highlight 
menu entry. It will always point to the menu entry which need to be highlighted 
or the gMenuOption menu if the highlight menu is not found.
So we can remove the NULL ptr check for NewPos in this function.
And add the ASSERT code to avoid if any false positive reports of NULL pointer 
dereference issue raised from static analysis.

Cc: Liming Gao <[email protected]>
Cc: Eric Dong <[email protected]>
Cc: Star Zeng <[email protected]>
Cc: Hao Wu <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <[email protected]>
---
 MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c 
b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
index 7390f954b6..44f087fe01 100644
--- a/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
+++ b/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
@@ -2880,10 +2880,11 @@ UiDisplayMenu (
       //             MenuOption is set to NULL in Repaint
       // NewPos:     Current menu option that need to hilight
       //
       ControlFlag = CfUpdateHelpString;
 
+      ASSERT (NewPos != NULL);
       UpdateHighlightMenuInfo(NewPos, TopOfScreen, SkipValue);
 
       if (SkipHighLight) {
         SkipHighLight = FALSE;
         MenuOption    = SavedMenuOption;
@@ -2908,11 +2909,11 @@ UiDisplayMenu (
         Temp2 = SkipValue;
       } else {
         Temp2 = 0;
       }
 
-      if (NewPos != NULL && (MenuOption == NULL || NewPos != 
&MenuOption->Link)) {
+      if (MenuOption == NULL || NewPos != &MenuOption->Link) {
         if (MenuOption != NULL) {
           //
           // Remove the old highlight menu.
           //
           Status = DisplayOneMenu (MenuOption,
--
2.18.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to