From 3dbef428c7b36b8ab709b44d790a7352af855e48 Mon Sep 17 00:00:00 2001 From: ydong10 Date: Mon, 27 Feb 2012 02:44:20 +0000 Subject: [PATCH] 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 --- .../BaseExtractGuidedSectionLib.c | 8 ++++++++ .../PeiExtractGuidedSectionLib.c | 4 ++++ 2 files changed, 12 insertions(+) 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)) { // -- 2.39.2