mirror of https://github.com/acidanthera/audk.git
Update HobLib and Hob Service to avoid data over flow.
Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Rui Sun <rui.sun@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13532 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
785d84ead0
commit
192764dba9
|
@ -8,7 +8,7 @@
|
||||||
allows the PEI phase to pass information to the DXE phase. HOBs are position
|
allows the PEI phase to pass information to the DXE phase. HOBs are position
|
||||||
independent and can be relocated easily to different memory memory locations.
|
independent and can be relocated easily to different memory memory locations.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -220,7 +220,8 @@ BuildResourceDescriptorHob (
|
||||||
|
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param DataLength The size of the data payload for the GUID HOB.
|
@param DataLength The size of the data payload for the GUID HOB.
|
||||||
|
@ -250,7 +251,8 @@ BuildGuidHob (
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If Data is NULL and DataLength > 0, then ASSERT().
|
If Data is NULL and DataLength > 0, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param Data The data to be copied into the data field of the GUID HOB.
|
@param Data The data to be copied into the data field of the GUID HOB.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
HOB Library implementation for DxeCore driver.
|
HOB Library implementation for DxeCore driver.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -281,7 +281,8 @@ BuildResourceDescriptorHob (
|
||||||
|
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param DataLength The size of the data payload for the GUID HOB.
|
@param DataLength The size of the data payload for the GUID HOB.
|
||||||
|
@ -318,7 +319,8 @@ BuildGuidHob (
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If Data is NULL and DataLength > 0, then ASSERT().
|
If Data is NULL and DataLength > 0, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param Data The data to be copied into the data field of the GUID HOB.
|
@param Data The data to be copied into the data field of the GUID HOB.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
HOB Library implemenation for Dxe Phase.
|
HOB Library implemenation for Dxe Phase.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -314,7 +314,8 @@ BuildResourceDescriptorHob (
|
||||||
|
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param DataLength The size of the data payload for the GUID HOB.
|
@param DataLength The size of the data payload for the GUID HOB.
|
||||||
|
@ -351,7 +352,8 @@ BuildGuidHob (
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If Data is NULL and DataLength > 0, then ASSERT().
|
If Data is NULL and DataLength > 0, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param Data The data to be copied into the data field of the GUID HOB.
|
@param Data The data to be copied into the data field of the GUID HOB.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Provide Hob Library functions for Pei phase.
|
Provide Hob Library functions for Pei phase.
|
||||||
|
|
||||||
Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -349,7 +349,8 @@ BuildResourceDescriptorHob (
|
||||||
|
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param DataLength The size of the data payload for the GUID HOB.
|
@param DataLength The size of the data payload for the GUID HOB.
|
||||||
|
@ -375,7 +376,7 @@ BuildGuidHob (
|
||||||
//
|
//
|
||||||
// Make sure that data length is not too long.
|
// Make sure that data length is not too long.
|
||||||
//
|
//
|
||||||
ASSERT (DataLength <= (0xffff - sizeof (EFI_HOB_GUID_TYPE)));
|
ASSERT (DataLength <= (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)));
|
||||||
|
|
||||||
Hob = InternalPeiCreateHob (EFI_HOB_TYPE_GUID_EXTENSION, (UINT16) (sizeof (EFI_HOB_GUID_TYPE) + DataLength));
|
Hob = InternalPeiCreateHob (EFI_HOB_TYPE_GUID_EXTENSION, (UINT16) (sizeof (EFI_HOB_GUID_TYPE) + DataLength));
|
||||||
if (Hob == NULL) {
|
if (Hob == NULL) {
|
||||||
|
@ -399,7 +400,8 @@ BuildGuidHob (
|
||||||
If Guid is NULL, then ASSERT().
|
If Guid is NULL, then ASSERT().
|
||||||
If Data is NULL and DataLength > 0, then ASSERT().
|
If Data is NULL and DataLength > 0, then ASSERT().
|
||||||
If there is no additional space for HOB creation, then ASSERT().
|
If there is no additional space for HOB creation, then ASSERT().
|
||||||
If DataLength >= (0x10000 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
If DataLength > (0xFFF8 - sizeof (EFI_HOB_GUID_TYPE)), then ASSERT().
|
||||||
|
HobLength is UINT16 and multiples of 8 bytes, so the max HobLength is 0xFFF8.
|
||||||
|
|
||||||
@param Guid The GUID to tag the customized HOB.
|
@param Guid The GUID to tag the customized HOB.
|
||||||
@param Data The data to be copied into the data field of the GUID HOB.
|
@param Data The data to be copied into the data field of the GUID HOB.
|
||||||
|
|
Loading…
Reference in New Issue