]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Explicit to judge whether Index is out of boundary.
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 24 Jun 2009 07:42:19 +0000 (07:42 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 24 Jun 2009 07:42:19 +0000 (07:42 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8646 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c

index c0fd073aaa2e48989ebaae7f9b9b0904dace8815..7d9d47cd5dbf0950962c571ca0937555c929e3cc 100644 (file)
@@ -625,8 +625,9 @@ ApplyChangeHandler (
     break;\r
 \r
   case FORM_BOOT_DEL_ID:\r
-    ASSERT (BootOptionMenu.MenuNumber <= (sizeof (CurrentFakeNVMap->BootOptionDel) / sizeof (UINT8)));\r
-    for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < BootOptionMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->BootOptionDel) / sizeof (UINT8)))); \r
+         Index ++) {\r
       NewMenuEntry            = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
       NewLoadContext          = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewLoadContext->Deleted = CurrentFakeNVMap->BootOptionDel[Index];\r
@@ -636,8 +637,9 @@ ApplyChangeHandler (
     break;\r
 \r
   case FORM_DRV_DEL_ID:\r
-    ASSERT (DriverOptionMenu.MenuNumber <= (sizeof (CurrentFakeNVMap->DriverOptionDel) / sizeof (UINT8)));\r
-    for (Index = 0; Index < DriverOptionMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < DriverOptionMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->DriverOptionDel) / sizeof (UINT8)))); \r
+         Index++) {\r
       NewMenuEntry            = BOpt_GetMenuEntry (&DriverOptionMenu, Index);\r
       NewLoadContext          = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewLoadContext->Deleted = CurrentFakeNVMap->DriverOptionDel[Index];\r
@@ -700,14 +702,17 @@ ApplyChangeHandler (
     break;\r
 \r
   case FORM_CON_IN_ID:\r
-    ASSERT ((ConsoleInpMenu.MenuNumber + TerminalMenu.MenuNumber) <= (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)));\r
-    for (Index = 0; Index < ConsoleInpMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < ConsoleInpMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)))); \r
+         Index++) {\r
       NewMenuEntry                = BOpt_GetMenuEntry (&ConsoleInpMenu, Index);\r
       NewConsoleContext           = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewConsoleContext->IsActive = CurrentFakeNVMap->ConsoleCheck[Index];\r
     }\r
 \r
-    for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < TerminalMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8) - ConsoleInpMenu.MenuNumber))); \r
+         Index++) {\r
       NewMenuEntry                = BOpt_GetMenuEntry (&TerminalMenu, Index);\r
       NewTerminalContext          = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewTerminalContext->IsConIn = CurrentFakeNVMap->ConsoleCheck[Index + ConsoleInpMenu.MenuNumber];\r
@@ -717,14 +722,17 @@ ApplyChangeHandler (
     break;\r
 \r
   case FORM_CON_OUT_ID:\r
-    ASSERT ((ConsoleOutMenu.MenuNumber + TerminalMenu.MenuNumber) <= (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)));\r
-    for (Index = 0; Index < ConsoleOutMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < ConsoleOutMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)))); \r
+         Index++) {\r
       NewMenuEntry                = BOpt_GetMenuEntry (&ConsoleOutMenu, Index);\r
       NewConsoleContext           = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewConsoleContext->IsActive = CurrentFakeNVMap->ConsoleCheck[Index];\r
     }\r
 \r
-    for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < TerminalMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8) - ConsoleOutMenu.MenuNumber))); \r
+         Index++) {\r
       NewMenuEntry                  = BOpt_GetMenuEntry (&TerminalMenu, Index);\r
       NewTerminalContext            = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewTerminalContext->IsConOut  = CurrentFakeNVMap->ConsoleCheck[Index + ConsoleOutMenu.MenuNumber];\r
@@ -735,13 +743,17 @@ ApplyChangeHandler (
 \r
   case FORM_CON_ERR_ID:\r
     ASSERT ((ConsoleErrMenu.MenuNumber + TerminalMenu.MenuNumber) <= (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)));\r
-    for (Index = 0; Index < ConsoleErrMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < ConsoleErrMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)))); \r
+         Index++) {\r
       NewMenuEntry                = BOpt_GetMenuEntry (&ConsoleErrMenu, Index);\r
       NewConsoleContext           = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewConsoleContext->IsActive = CurrentFakeNVMap->ConsoleCheck[Index];\r
     }\r
 \r
-    for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {\r
+    for (Index = 0; \r
+         ((Index < TerminalMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8) - ConsoleErrMenu.MenuNumber))); \r
+         Index++) {\r
       NewMenuEntry                  = BOpt_GetMenuEntry (&TerminalMenu, Index);\r
       NewTerminalContext            = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
       NewTerminalContext->IsStdErr  = CurrentFakeNVMap->ConsoleCheck[Index + ConsoleErrMenu.MenuNumber];\r