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:
lgao4 2012-07-17 01:50:52 +00:00
parent 785d84ead0
commit 192764dba9
4 changed files with 21 additions and 13 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.