break;\r
\r
case FORM_CON_IN_ID:\r
- for (Index = 0; \r
- ((Index < ConsoleInpMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)))); \r
- Index++) {\r
+ for (Index = 0; Index < ConsoleInpMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleInpMenu, Index);\r
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;\r
+ ASSERT (Index < MAX_MENU_NUMBER);\r
NewConsoleContext->IsActive = CurrentFakeNVMap->ConsoleCheck[Index];\r
}\r
\r
- for (Index = 0; \r
- ((Index < TerminalMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8) - ConsoleInpMenu.MenuNumber))); \r
- Index++) {\r
+ for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);\r
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
+ ASSERT (Index + ConsoleInpMenu.MenuNumber < MAX_MENU_NUMBER);\r
NewTerminalContext->IsConIn = CurrentFakeNVMap->ConsoleCheck[Index + ConsoleInpMenu.MenuNumber];\r
}\r
\r
break;\r
\r
case FORM_CON_OUT_ID:\r
- for (Index = 0; \r
- ((Index < ConsoleOutMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)))); \r
- Index++) {\r
+ for (Index = 0; Index < ConsoleOutMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleOutMenu, Index);\r
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;\r
+ ASSERT (Index < MAX_MENU_NUMBER);\r
NewConsoleContext->IsActive = CurrentFakeNVMap->ConsoleCheck[Index];\r
}\r
\r
- for (Index = 0; \r
- ((Index < TerminalMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8) - ConsoleOutMenu.MenuNumber))); \r
- Index++) {\r
+ for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);\r
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
+ ASSERT (Index + ConsoleOutMenu.MenuNumber < MAX_MENU_NUMBER);\r
NewTerminalContext->IsConOut = CurrentFakeNVMap->ConsoleCheck[Index + ConsoleOutMenu.MenuNumber];\r
}\r
\r
break;\r
\r
case FORM_CON_ERR_ID:\r
- ASSERT ((ConsoleErrMenu.MenuNumber + TerminalMenu.MenuNumber) <= (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)));\r
- for (Index = 0; \r
- ((Index < ConsoleErrMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8)))); \r
- Index++) {\r
+ for (Index = 0; Index < ConsoleErrMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&ConsoleErrMenu, Index);\r
NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext;\r
+ ASSERT (Index < MAX_MENU_NUMBER);\r
NewConsoleContext->IsActive = CurrentFakeNVMap->ConsoleCheck[Index];\r
}\r
\r
- for (Index = 0; \r
- ((Index < TerminalMenu.MenuNumber) && (Index < (sizeof (CurrentFakeNVMap->ConsoleCheck) / sizeof (UINT8) - ConsoleErrMenu.MenuNumber))); \r
- Index++) {\r
+ for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);\r
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
+ ASSERT (Index + ConsoleErrMenu.MenuNumber < MAX_MENU_NUMBER);\r
NewTerminalContext->IsStdErr = CurrentFakeNVMap->ConsoleCheck[Index + ConsoleErrMenu.MenuNumber];\r
}\r
\r
// End Label\r
//\r
#define LABEL_END 0xffff\r
+#define MAX_MENU_NUMBER 100\r
\r
///\r
/// This is the structure that will be used to store the\r
//\r
// Driver Option Add Handle page storage\r
//\r
- UINT16 DriverAddHandleDesc[100];\r
- UINT16 DriverAddHandleOptionalData[100];\r
+ UINT16 DriverAddHandleDesc[MAX_MENU_NUMBER];\r
+ UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER];\r
UINT8 DriverAddActive;\r
UINT8 DriverAddForceReconnect;\r
\r
//\r
// At most 100 input/output/errorout device for console storage\r
//\r
- UINT8 ConsoleCheck[100];\r
+ UINT8 ConsoleCheck[MAX_MENU_NUMBER];\r
\r
//\r
// Boot or Driver Option Order storage\r
//\r
- UINT8 OptionOrder[100];\r
- UINT8 DriverOptionToBeDeleted[100];\r
+ UINT8 OptionOrder[MAX_MENU_NUMBER];\r
+ UINT8 DriverOptionToBeDeleted[MAX_MENU_NUMBER];\r
\r
//\r
// Boot Option Delete storage\r
//\r
- UINT8 BootOptionDel[100];\r
- UINT8 DriverOptionDel[100];\r
+ UINT8 BootOptionDel[MAX_MENU_NUMBER];\r
+ UINT8 DriverOptionDel[MAX_MENU_NUMBER];\r
\r
//\r
// This is the Terminal Attributes value storage\r
//\r
// Legacy Device Order Selection Storage\r
//\r
- UINT8 LegacyFD[100];\r
- UINT8 LegacyHD[100];\r
- UINT8 LegacyCD[100];\r
- UINT8 LegacyNET[100];\r
- UINT8 LegacyBEV[100];\r
+ UINT8 LegacyFD[MAX_MENU_NUMBER];\r
+ UINT8 LegacyHD[MAX_MENU_NUMBER];\r
+ UINT8 LegacyCD[MAX_MENU_NUMBER];\r
+ UINT8 LegacyNET[MAX_MENU_NUMBER];\r
+ UINT8 LegacyBEV[MAX_MENU_NUMBER];\r
\r
//\r
// We use DisableMap array to record the enable/disable state of each boot device\r
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index2);\r
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
\r
+ ASSERT (Index < MAX_MENU_NUMBER);\r
if (((NewTerminalContext->IsConIn != 0) && (UpdatePageId == FORM_CON_IN_ID)) ||\r
((NewTerminalContext->IsConOut != 0) && (UpdatePageId == FORM_CON_OUT_ID)) ||\r
((NewTerminalContext->IsStdErr != 0) && (UpdatePageId == FORM_CON_ERR_ID))\r
UINTN Row;\r
CHAR16 RowString[50];\r
CHAR16 ModeString[50];\r
+ CHAR16 *pStr;\r
UINTN TempStringLen;\r
UINTN MaxMode;\r
UINTN ValidMode;\r
// Build mode string Column x Row\r
//\r
TempStringLen = UnicodeValueToString (ModeString, 0, Col, 0);\r
- ASSERT ((TempStringLen + StrLen (L" x ")) < (sizeof (ModeString) / sizeof (ModeString[0])));\r
- StrCat (ModeString, L" x ");\r
+ pStr = &ModeString[0];\r
+ StrnCat (pStr, L" x ", StrLen(L" x "));\r
TempStringLen = UnicodeValueToString (RowString, 0, Row, 0);\r
- ASSERT ((StrLen (ModeString) + TempStringLen) < (sizeof (ModeString) / sizeof (ModeString[0])));\r
- StrCat (ModeString, RowString);\r
+ pStr = &ModeString[0];\r
+ StrnCat (pStr, RowString, StrLen(RowString));\r
\r
ModeToken[Index] = HiiSetString (CallbackData->BmmHiiHandle, 0, ModeString, NULL);\r
\r
if (StrStr (Option->Description, DESCRIPTION_FLOPPY) != NULL) {\r
BootStringNumber = Option->Description + StrLen (DESCRIPTION_FLOPPY) + 1;\r
Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_FLOPPY));\r
- \r
} else if (StrStr (Option->Description, DESCRIPTION_DVD) != NULL) {\r
BootStringNumber = Option->Description + StrLen (DESCRIPTION_DVD) + 1;\r
Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_DVD));\r
Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_NON_BLOCK));\r
}\r
\r
+ ASSERT (Option->Description != NULL);\r
if (StrnCmp (BootStringNumber, L"0", 1) != 0) {\r
StrCat (Option->Description, L" ");\r
StrCat (Option->Description, BootStringNumber);\r