Changeset 85718 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c
- Timestamp:
- Aug 12, 2020 4:09:12 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 139865
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-133213 /vendor/edk2/current 103735-103757,103769-103776,129194-139864
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c
r80721 r85718 2 2 Save the S3 data to S3 boot script. 3 3 4 Copyright (c) 2006 - 20 17, Intel Corporation. All rights reserved.<BR>4 Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR> 5 5 6 6 SPDX-License-Identifier: BSD-2-Clause-Patent … … 125 125 BOOLEAN mS3BootScriptTableSmmAllocated = FALSE; 126 126 EFI_SMM_SYSTEM_TABLE2 *mBootScriptSmst = NULL; 127 BOOLEAN mAcpiS3Enable = TRUE; 127 128 128 129 /** … … 436 437 BOOLEAN InSmm; 437 438 EFI_PHYSICAL_ADDRESS Buffer; 439 440 if (!PcdGetBool (PcdAcpiS3Enable)) { 441 mAcpiS3Enable = FALSE; 442 DEBUG ((DEBUG_INFO, "%a: Skip S3BootScript because ACPI S3 disabled.\n", gEfiCallerBaseName)); 443 return RETURN_SUCCESS; 444 } 438 445 439 446 S3TablePtr = (SCRIPT_TABLE_PRIVATE_DATA*)(UINTN)PcdGet64(PcdS3BootScriptTablePrivateDataPtr); … … 562 569 { 563 570 EFI_STATUS Status; 571 572 if (!mAcpiS3Enable) { 573 return RETURN_SUCCESS; 574 } 564 575 565 576 DEBUG ((EFI_D_INFO, "%a() in %a module\n", __FUNCTION__, gEfiCallerBaseName)); … … 811 822 UINT8* NewEntryPtr; 812 823 824 if (!mAcpiS3Enable) { 825 return NULL; 826 } 827 813 828 if (mS3BootScriptTablePtr->SmmLocked) { 814 829 // … … 992 1007 993 1008 WidthInByte = (UINT8) (0x01 << (Width & 0x03)); 1009 1010 // 1011 // Truncation check 1012 // 1013 if ((Count > MAX_UINT8) || 1014 (WidthInByte * Count > MAX_UINT8 - sizeof (EFI_BOOT_SCRIPT_IO_WRITE))) { 1015 return RETURN_OUT_OF_RESOURCES; 1016 } 994 1017 Length = (UINT8)(sizeof (EFI_BOOT_SCRIPT_IO_WRITE) + (WidthInByte * Count)); 995 1018 … … 1088 1111 1089 1112 WidthInByte = (UINT8) (0x01 << (Width & 0x03)); 1113 1114 // 1115 // Truncation check 1116 // 1117 if ((Count > MAX_UINT8) || 1118 (WidthInByte * Count > MAX_UINT8 - sizeof (EFI_BOOT_SCRIPT_MEM_WRITE))) { 1119 return RETURN_OUT_OF_RESOURCES; 1120 } 1090 1121 Length = (UINT8)(sizeof (EFI_BOOT_SCRIPT_MEM_WRITE) + (WidthInByte * Count)); 1091 1122 … … 1192 1223 1193 1224 WidthInByte = (UINT8) (0x01 << (Width & 0x03)); 1225 1226 // 1227 // Truncation check 1228 // 1229 if ((Count > MAX_UINT8) || 1230 (WidthInByte * Count > MAX_UINT8 - sizeof (EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE))) { 1231 return RETURN_OUT_OF_RESOURCES; 1232 } 1194 1233 Length = (UINT8)(sizeof (EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE) + (WidthInByte * Count)); 1195 1234 … … 1310 1349 1311 1350 WidthInByte = (UINT8) (0x01 << (Width & 0x03)); 1351 1352 // 1353 // Truncation check 1354 // 1355 if ((Count > MAX_UINT8) || 1356 (WidthInByte * Count > MAX_UINT8 - sizeof (EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE))) { 1357 return RETURN_OUT_OF_RESOURCES; 1358 } 1312 1359 Length = (UINT8)(sizeof (EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE) + (WidthInByte * Count)); 1313 1360 … … 1535 1582 } 1536 1583 1584 // 1585 // Truncation check 1586 // 1587 if (BufferLength > MAX_UINT8 - sizeof (EFI_BOOT_SCRIPT_SMBUS_EXECUTE)) { 1588 return RETURN_OUT_OF_RESOURCES; 1589 } 1537 1590 DataSize = (UINT8)(sizeof (EFI_BOOT_SCRIPT_SMBUS_EXECUTE) + BufferLength); 1538 1591 … … 1722 1775 EFI_BOOT_SCRIPT_INFORMATION ScriptInformation; 1723 1776 1777 // 1778 // Truncation check 1779 // 1780 if (InformationLength > MAX_UINT8 - sizeof (EFI_BOOT_SCRIPT_INFORMATION)) { 1781 return RETURN_OUT_OF_RESOURCES; 1782 } 1724 1783 Length = (UINT8)(sizeof (EFI_BOOT_SCRIPT_INFORMATION) + InformationLength); 1725 1784 … … 2181 2240 EFI_BOOT_SCRIPT_INFORMATION ScriptInformation; 2182 2241 2242 // 2243 // Truncation check 2244 // 2245 if (InformationLength > MAX_UINT8 - sizeof (EFI_BOOT_SCRIPT_INFORMATION)) { 2246 return RETURN_OUT_OF_RESOURCES; 2247 } 2183 2248 Length = (UINT8)(sizeof (EFI_BOOT_SCRIPT_INFORMATION) + InformationLength); 2184 2249
Note:
See TracChangeset
for help on using the changeset viewer.