]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellLevel2CommandsLib/Map.c
pointer verification (not NULL) and buffer overrun fixes.
[mirror_edk2.git] / ShellPkg / Library / UefiShellLevel2CommandsLib / Map.c
index 2b608a02cf620d97a02f72d998456087aae6fd47..e7d19c9bed702c84d339c68265010282991aba3c 100644 (file)
@@ -330,6 +330,9 @@ MappingListHasType(
   //\r
   if (Specific != NULL) {\r
     NewSpecific = AllocateZeroPool(StrSize(Specific) + sizeof(CHAR16));\r
+    if (NewSpecific == NULL){\r
+      return FALSE;\r
+    }\r
     StrCpy(NewSpecific, Specific);\r
     if (NewSpecific[StrLen(NewSpecific)-1] != L':') {\r
       StrCat(NewSpecific, L":");\r
@@ -609,7 +612,7 @@ PerformMappingDisplay(
   // Get the map name(s) for each one.\r
   //\r
   for ( LoopVar = 0, Found = FALSE\r
-      ; LoopVar < (BufferSize / sizeof(EFI_HANDLE))\r
+      ; LoopVar < (BufferSize / sizeof(EFI_HANDLE)) && HandleBuffer != NULL\r
       ; LoopVar ++\r
      ){\r
     Status = PerformSingleMappingDisplay(\r
@@ -635,7 +638,7 @@ PerformMappingDisplay(
     &BufferSize,\r
     HandleBuffer);\r
   if (Status == EFI_BUFFER_TOO_SMALL) {\r
-    FreePool(HandleBuffer);\r
+    SHELL_FREE_NON_NULL(HandleBuffer);\r
     HandleBuffer = AllocateZeroPool(BufferSize);\r
     if (HandleBuffer == NULL) {\r
       return (SHELL_OUT_OF_RESOURCES);\r
@@ -897,6 +900,9 @@ AddMappingFromMapping(
   CHAR16                          *NewSName;\r
   \r
   NewSName = AllocateZeroPool(StrSize(SName) + sizeof(CHAR16));\r
+  if (NewSName == NULL) {\r
+    return (SHELL_OUT_OF_RESOURCES);\r
+  }\r
   StrCpy(NewSName, SName);\r
   if (NewSName[StrLen(NewSName)-1] != L':') {\r
     StrCat(NewSName, L":");\r
@@ -947,6 +953,9 @@ AddMappingFromHandle(
   CHAR16                    *NewSName;\r
   \r
   NewSName = AllocateZeroPool(StrSize(SName) + sizeof(CHAR16));\r
+  if (NewSName == NULL) {\r
+    return (SHELL_OUT_OF_RESOURCES);\r
+  }\r
   StrCpy(NewSName, SName);\r
   if (NewSName[StrLen(NewSName)-1] != L':') {\r
     StrCat(NewSName, L":");\r