*EnBootOptionCount = 0;\r
Index = 0;\r
\r
+ ASSERT (BbsIndexArray != NULL);\r
+ ASSERT (DeviceTypeArray != NULL);\r
ASSERT (*EnBootOption != NULL);\r
ASSERT (*DisBootOption != NULL);\r
\r
//\r
StartPosition = BootOrderSize / sizeof (UINT16);\r
NewBootOption = AllocatePool (DevOrderCount * sizeof (UINT16));\r
+ ASSERT (NewBootOption != NULL);\r
while (DevOrderCount-- != 0) {\r
for (Index = 0; Index < BootOrderSize / sizeof (UINT16); Index++) {\r
if (BbsIndexArray[Index] == (DevOrder[DevOrderCount] & 0xFF)) {\r
UINTN Pos;\r
UINTN Bit;\r
UINT8 *DisMap;\r
+ UINTN TotalLength;\r
\r
LegacyDev = NULL;\r
OptionMenu = NULL;\r
//\r
// Create oneof tag here for FD/HD/CD #1 #2\r
//\r
- for (Index = 0; Index < OptionMenu->MenuNumber; Index++) { \r
- VarDevOrder = *(UINT16 *) ((UINT8 *) DevOrder + sizeof (BBS_TYPE) + sizeof (UINT16) + Index * sizeof (UINT16));\r
- \r
+ for (Index = 0; Index < OptionMenu->MenuNumber; Index++) {\r
+ TotalLength = sizeof (BBS_TYPE) + sizeof (UINT16) + Index * sizeof (UINT16);\r
+ VarDevOrder = *(UINT16 *) ((UINT8 *) DevOrder + TotalLength);\r
+\r
if (0xFF00 == (VarDevOrder & 0xFF00)) {\r
LegacyDev[Index] = 0xFF;\r
Pos = (VarDevOrder & 0xFF) / 8;\r
}\r
}\r
\r
- VarData += sizeof (BBS_TYPE);\r
+ VarData ++;\r
VarData += *(UINT16 *) VarData;\r
DevOrder = (LEGACY_DEV_ORDER_ENTRY *) VarData;\r
}\r