diff options
author | ydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-02-27 02:44:20 +0000 |
---|---|---|
committer | ydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-02-27 02:44:20 +0000 |
commit | 3dbef428c7b36b8ab709b44d790a7352af855e48 (patch) | |
tree | ee6509808011e2fb5dffcd7baff14c7f317c6e62 | |
parent | 65cc57fc4162563c1f8367ed69db8274ea7cabdc (diff) | |
download | edk2-platforms-3dbef428c7b36b8ab709b44d790a7352af855e48.tar.xz |
Add code check to avoid access violation.
Signed-off-by:ydong10
Reviewed-by:lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13036 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r-- | MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.c | 8 | ||||
-rw-r--r-- | MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.c b/MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.c index 05e6a9e796..3a12cb1408 100644 --- a/MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.c +++ b/MdePkg/Library/BaseExtractGuidedSectionLib/BaseExtractGuidedSectionLib.c @@ -50,6 +50,10 @@ GetExtractGuidedSectionHandlerInfo ( // Set the available memory address to handler info.
//
HandlerInfo = (EXTRACT_GUIDED_SECTION_HANDLER_INFO*)(VOID*)(UINTN) PcdGet64 (PcdGuidedExtractHandlerTableAddress);
+ if (HandlerInfo == NULL) {
+ *InfoPointer = NULL;
+ return EFI_OUT_OF_RESOURCES;
+ }
//
// First check whether the handler information structure is initialized.
@@ -129,6 +133,7 @@ ExtractGuidedSectionGetGuidList ( //
// Get GuidTable and Table Number
//
+ ASSERT (HandlerInfo != NULL);
*ExtractHandlerGuidTable = HandlerInfo->ExtractHandlerGuidTable;
return HandlerInfo->NumberOfExtractHandler;
}
@@ -187,6 +192,7 @@ ExtractGuidedSectionRegisterHandlers ( //
// Search the match registered GetInfo handler for the input guided section.
//
+ ASSERT (HandlerInfo != NULL);
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionGuid)) {
//
@@ -288,6 +294,7 @@ ExtractGuidedSectionGetInfo ( //
// Search the match registered GetInfo handler for the input guided section.
//
+ ASSERT (HandlerInfo != NULL);
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionDefinitionGuid)) {
//
@@ -381,6 +388,7 @@ ExtractGuidedSectionDecode ( //
// Search the match registered Extract handler for the input guided section.
//
+ ASSERT (HandlerInfo != NULL);
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionDefinitionGuid)) {
//
diff --git a/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c b/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c index 1fad3d0c47..ffb11273bd 100644 --- a/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c +++ b/MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.c @@ -156,6 +156,7 @@ ExtractGuidedSectionGetGuidList ( //
// Get GuidTable and Table Number
//
+ ASSERT (HandlerInfo != NULL);
*ExtractHandlerGuidTable = HandlerInfo->ExtractHandlerGuidTable;
return HandlerInfo->NumberOfExtractHandler;
}
@@ -216,6 +217,7 @@ ExtractGuidedSectionRegisterHandlers ( //
// Search the match registered GetInfo handler for the input guided section.
//
+ ASSERT (HandlerInfo != NULL);
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionGuid)) {
//
@@ -317,6 +319,7 @@ ExtractGuidedSectionGetInfo ( //
// Search the match registered GetInfo handler for the input guided section.
//
+ ASSERT (HandlerInfo != NULL);
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionDefinitionGuid)) {
//
@@ -410,6 +413,7 @@ ExtractGuidedSectionDecode ( //
// Search the match registered Extract handler for the input guided section.
//
+ ASSERT (HandlerInfo != NULL);
for (Index = 0; Index < HandlerInfo->NumberOfExtractHandler; Index ++) {
if (CompareGuid (HandlerInfo->ExtractHandlerGuidTable + Index, SectionDefinitionGuid)) {
//
|