summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2007-10-18 09:12:59 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2007-10-18 09:12:59 +0000
commite6c560aad63b09e6aaee3ccc65be462651772fe5 (patch)
treeea8a7bd938ec2060e395df4b86f3f97beabfc500
parentd7f73f568f45c863b44fb2a0fecae8b8c36311d4 (diff)
downloadedk2-platforms-e6c560aad63b09e6aaee3ccc65be462651772fe5.tar.xz
Make GuidedSection library instance to follow the value of GuidedSectionExtraction protocol/PPI defined in PI spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4165 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.c19
-rw-r--r--IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf1
-rw-r--r--IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLibInternals.h1
-rw-r--r--MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.c20
-rw-r--r--MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf1
-rw-r--r--MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.c16
-rw-r--r--MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c16
7 files changed, 53 insertions, 21 deletions
diff --git a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.c b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.c
index 14d549d4d6..a489288761 100644
--- a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.c
+++ b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.c
@@ -796,6 +796,7 @@ Returns:
RETURN_SUCCESS - The size of destination buffer and the size of scratch buffer are successull retrieved.
RETURN_INVALID_PARAMETER - The source data is corrupted
+ The GUID in InputSection does not match this instance guid.
--*/
{
@@ -804,6 +805,12 @@ Returns:
if (InputSection == NULL) {
return RETURN_INVALID_PARAMETER;
}
+
+ if (!CompareGuid (
+ &gTianoCustomDecompressGuid,
+ &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
+ return RETURN_INVALID_PARAMETER;
+ }
//
// Get guid attribute of guid section.
//
@@ -846,7 +853,8 @@ Arguments:
Returns:
RETURN_SUCCESS - Decompression is successfull
- RETURN_INVALID_PARAMETER - The source data is corrupted
+ RETURN_INVALID_PARAMETER - The source data is corrupted, or
+ The GUID in InputSection does not match this instance guid.
--*/
{
@@ -854,7 +862,14 @@ Returns:
if (InputSection == NULL) {
return RETURN_INVALID_PARAMETER;
- }
+ }
+
+ if (!CompareGuid (
+ &gTianoCustomDecompressGuid,
+ &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
+ return RETURN_INVALID_PARAMETER;
+ }
+
//
// Set Authentication to Zero.
//
diff --git a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
index 18e1f49a27..746d42c2ae 100644
--- a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
+++ b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
@@ -42,6 +42,7 @@
[LibraryClasses]
DebugLib
+ BaseMemoryLib
ExtractGuidedSectionLib
[Guids]
diff --git a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLibInternals.h b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLibInternals.h
index 29995387b4..c83d79ef0f 100644
--- a/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLibInternals.h
+++ b/IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLibInternals.h
@@ -21,6 +21,7 @@
#include <Library/UefiDecompressLib.h>
#include <Library/DebugLib.h>
+#include <Library/BaseMemoryLib.h>
#include <Library/ExtractGuidedSectionLib.h>
//
diff --git a/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.c b/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.c
index 6deb8dc6d2..8e2cc0201f 100644
--- a/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.c
+++ b/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.c
@@ -27,6 +27,7 @@ Abstract:
#include <Protocol/SecurityPolicy.h>
#include <Library/ExtractGuidedSectionLib.h>
#include <Library/DebugLib.h>
+#include <Library/BaseMemoryLib.h>
#include <Library/UefiBootServicesTableLib.h>
typedef struct {
@@ -57,10 +58,16 @@ Arguments:
Returns:
EFI_SUCCESS - The size of destination buffer and the size of scratch buffer are successull retrieved.
- EFI_INVALID_PARAMETER - The source data is corrupted
+ EFI_INVALID_PARAMETER - The source data is corrupted, or
+ The GUID in InputSection does not match this instance guid.
--*/
{
+ if (!CompareGuid (
+ &gEfiCrc32GuidedSectionExtractionProtocolGuid,
+ &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
+ return EFI_INVALID_PARAMETER;
+ }
//
// Retrieve the size and attribute of the input section data.
//
@@ -97,8 +104,9 @@ Arguments:
Returns:
- EFI_SUCCESS - Decompression is successfull
- EFI_INVALID_PARAMETER - The source data is corrupted
+ RETURN_SUCCESS - Decompression is successfull
+ RETURN_INVALID_PARAMETER - The source data is corrupted, or
+ The GUID in InputSection does not match this instance guid.
--*/
{
@@ -108,6 +116,12 @@ Returns:
UINT32 OutputBufferSize;
VOID *DummyInterface;
+ if (!CompareGuid (
+ &gEfiCrc32GuidedSectionExtractionProtocolGuid,
+ &(((EFI_GUID_DEFINED_SECTION *) InputSection)->SectionDefinitionGuid))) {
+ return EFI_INVALID_PARAMETER;
+ }
+
Crc32Checksum = 0;
//
// Points to the Crc32 section header
diff --git a/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf b/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
index d5f136de4a..b5cbdcecf1 100644
--- a/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
+++ b/MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
@@ -41,6 +41,7 @@
ExtractGuidedSectionLib
UefiBootServicesTableLib
DebugLib
+ BaseMemoryLib
[Protocols]
gEfiCrc32GuidedSectionExtractionProtocolGuid
diff --git a/MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.c b/MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.c
index 350aec59b7..164691389b 100644
--- a/MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.c
+++ b/MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.c
@@ -141,7 +141,7 @@ ExtractGuidedSectionRegisterHandlers (
Get information from the guided section. This function first gets the guid value
from guided section header, then match this guid in the registered extract Handler list
to its corresponding getinfo Handler.
- If not found, RETURN_UNSUPPORTED will be return.
+ If not found, RETURN_INVALID_PARAMETER will be return.
If found, it will call the getinfo Handler to get the required size and attribute.
It will ASSERT () if the pointer to OutputBufferSize is NULL.
@@ -154,8 +154,8 @@ ExtractGuidedSectionRegisterHandlers (
@param[out] SectionAttribute The attribute of the input guided section.
@retval RETURN_SUCCESS Get the required information successfully.
- @retval RETURN_UNSUPPORTED Guided section data is not supported.
- @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ The GUID in InputSection does not match any registered guid list.
**/
RETURN_STATUS
@@ -190,7 +190,7 @@ ExtractGuidedSectionGetInfo (
// Not found, the input guided section is not supported.
//
if (Index == mNumberOfExtractHandler) {
- return RETURN_UNSUPPORTED;
+ return RETURN_INVALID_PARAMETER;
}
//
@@ -208,7 +208,7 @@ ExtractGuidedSectionGetInfo (
Extract data from the guided section. This function first gets the guid value
from guided section header, then match this guid in the registered extract Handler list
to its corresponding extract Handler.
- If not found, RETURN_UNSUPPORTED will be return.
+ If not found, RETURN_INVALID_PARAMETER will be return.
If found, it will call this extract Handler to get output data and AuthenticationStatus.
It will ASSERT () if the pointer to OutputBuffer is NULL.
@@ -225,8 +225,8 @@ ExtractGuidedSectionGetInfo (
authentication status of the output buffer.
@retval RETURN_SUCCESS Get the output data, size and AuthenticationStatus successfully.
- @retval RETURN_UNSUPPORTED Guided section data is not supported to be decoded.
- @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ The GUID in InputSection does not match any registered guid.
**/
RETURN_STATUS
@@ -260,7 +260,7 @@ ExtractGuidedSectionDecode (
// Not found, the input guided section is not supported.
//
if (Index == mNumberOfExtractHandler) {
- return RETURN_UNSUPPORTED;
+ return RETURN_INVALID_PARAMETER;
}
//
diff --git a/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c b/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c
index 51cf29d1f4..bbe6b50872 100644
--- a/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c
+++ b/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c
@@ -188,7 +188,7 @@ ExtractGuidedSectionRegisterHandlers (
Get information from the guided section. This function first gets the guid value
from guided section header, then match this guid in the registered extract Handler list
to its corresponding getinfo Handler.
- If not found, RETURN_UNSUPPORTED will be return.
+ If not found, RETURN_INVALID_PARAMETER will be return.
If found, it will call the getinfo Handler to get the required size and attribute.
It will ASSERT () if the pointer to OutputBufferSize is NULL.
@@ -201,8 +201,8 @@ ExtractGuidedSectionRegisterHandlers (
@param[out] SectionAttribute The attribute of the input guided section.
@retval RETURN_SUCCESS Get the required information successfully.
- @retval RETURN_UNSUPPORTED Guided section data is not supported.
- @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ The GUID in InputSection does not match any registered guid list.
**/
RETURN_STATUS
@@ -250,7 +250,7 @@ ExtractGuidedSectionGetInfo (
// Not found, the input guided section is not supported.
//
if (Index == HandlerInfo->NumberOfExtractHandler) {
- return RETURN_UNSUPPORTED;
+ return RETURN_INVALID_PARAMETER;
}
//
@@ -268,7 +268,7 @@ ExtractGuidedSectionGetInfo (
Extract data from the guided section. This function first gets the guid value
from guided section header, then match this guid in the registered extract Handler list
to its corresponding extract Handler.
- If not found, RETURN_UNSUPPORTED will be return.
+ If not found, RETURN_INVALID_PARAMETER will be return.
If found, it will call this extract Handler to get output data and AuthenticationStatus.
It will ASSERT () if the pointer to OutputBuffer is NULL.
@@ -285,8 +285,8 @@ ExtractGuidedSectionGetInfo (
authentication status of the output buffer.
@retval RETURN_SUCCESS Get the output data, size and AuthenticationStatus successfully.
- @retval RETURN_UNSUPPORTED Guided section data is not supported to be decoded.
- @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ @retval RETURN_INVALID_PARAMETER The input data can't be parsed correctly.
+ The GUID in InputSection does not match any registered guid list.
**/
RETURN_STATUS
@@ -327,7 +327,7 @@ ExtractGuidedSectionDecode (
// Not found, the input guided section is not supported.
//
if (Index == HandlerInfo->NumberOfExtractHandler) {
- return RETURN_UNSUPPORTED;
+ return RETURN_INVALID_PARAMETER;
}
//