]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Application/Shell/ShellManParser.c
ShellPkg: Add checking for memory allocation and pointer returns from functions.
[mirror_edk2.git] / ShellPkg / Application / Shell / ShellManParser.c
index bd2efcb423d60081a98c921c417caa8f6e2ea99e..470f51a8ea3d2d45202c35a854561e7daaa8800a 100644 (file)
@@ -180,6 +180,10 @@ ManBufferFindSections(
         TempString2 = MIN(TempString2, StrStr(CurrentLocation, L"\n"));\r
         ASSERT(TempString == NULL);\r
         TempString = StrnCatGrow(&TempString, NULL, CurrentLocation, TempString2==NULL?0:TempString2 - CurrentLocation);\r
+        if (TempString == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          break;\r
+        }\r
         SectionName = TempString;\r
         SectionLen = StrLen(SectionName);\r
         SectionName = StrStr(Sections, SectionName);\r
@@ -197,12 +201,24 @@ ManBufferFindSections(
         TempString2 = MIN(TempString2, StrStr(CurrentLocation, L"\n"));\r
         ASSERT(TempString == NULL);\r
         TempString = StrnCatGrow(&TempString, NULL, CurrentLocation, TempString2==NULL?0:TempString2 - CurrentLocation);\r
+        if (TempString == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          break;\r
+        }\r
         //\r
         // copy and save the current line.\r
         //\r
         ASSERT((*HelpText == NULL && *HelpSize == 0) || (*HelpText != NULL));\r
         StrnCatGrow (HelpText, HelpSize, TempString, 0);\r
+        if (HelpText == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          break;\r
+        }\r
         StrnCatGrow (HelpText, HelpSize, L"\r\n", 0);\r
+        if (HelpText == NULL) {\r
+          Status = EFI_OUT_OF_RESOURCES;\r
+          break;\r
+        }\r
       }\r
     }\r
     SHELL_FREE_NON_NULL(TempString);\r