]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/BdsDxe/FrontPage.c
Add array index check to avoid potential buffer overflow.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / FrontPage.c
index b217d0a9b9d51facc012d27ed2f024323c0a66df..f112040a4ae5051b4f7195f703489e187e074f49 100644 (file)
@@ -749,7 +749,7 @@ UpdateFrontPageStrings (
     if (Record->Type == EFI_SMBIOS_TYPE_BIOS_INFORMATION) {\r
       Type0Record = (SMBIOS_TABLE_TYPE0 *) Record;\r
       StrIndex = Type0Record->BiosVersion;\r
-      GetOptionalStringByIndex ((CHAR8*)(Type0Record+1), StrIndex, &NewString);\r
+      GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type0Record + Type0Record->Hdr.Length), StrIndex, &NewString);\r
       TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);\r
       HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
       FreePool (NewString);\r
@@ -759,7 +759,7 @@ UpdateFrontPageStrings (
     if (Record->Type == EFI_SMBIOS_TYPE_SYSTEM_INFORMATION) {\r
       Type1Record = (SMBIOS_TABLE_TYPE1 *) Record;\r
       StrIndex = Type1Record->ProductName;\r
-      GetOptionalStringByIndex ((CHAR8*)(Type1Record+1), StrIndex, &NewString);\r
+      GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type1Record + Type1Record->Hdr.Length), StrIndex, &NewString);\r
       TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);\r
       HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
       FreePool (NewString);\r
@@ -769,7 +769,7 @@ UpdateFrontPageStrings (
     if (Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) {\r
       Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
       StrIndex = Type4Record->ProcessorVersion;\r
-      GetOptionalStringByIndex ((CHAR8*)(Type4Record+1), StrIndex, &NewString);\r
+      GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type4Record + Type4Record->Hdr.Length), StrIndex, &NewString);\r
       TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL);\r
       HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
       FreePool (NewString);\r
@@ -1054,7 +1054,7 @@ PlatformBdsEnterFrontPage (
       //\r
       // User chose to run the Boot Manager\r
       //\r
-      CallBootManager();\r
+      CallBootManager ();\r
       break;\r
 \r
     case FRONT_PAGE_KEY_DEVICE_MANAGER:\r
@@ -1062,7 +1062,7 @@ PlatformBdsEnterFrontPage (
       // Display the Device Manager\r
       //\r
       do {\r
-        CallDeviceManager();\r
+        CallDeviceManager ();\r
       } while (gCallbackKey == FRONT_PAGE_KEY_DEVICE_MANAGER);\r
       break;\r
 \r