]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDebug1CommandsLib/DmpStore.c
ShellPkg/for: Fix potential null pointer deference
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / DmpStore.c
index 23db54553f11ece5e1d629d7e9998360a7144016..5791da9acc8c5f0192dfa733e6f5247bb1427c25 100644 (file)
@@ -424,6 +424,7 @@ CascadeProcessVariables (
   CHAR16                    *AttrString;\r
   CHAR16                    *HexString;\r
   EFI_STATUS                SetStatus;\r
+  CONST CHAR16              *GuidName;\r
 \r
   if (ShellGetExecutionBreakFlag()) {\r
     return (SHELL_ABORTED);\r
@@ -436,6 +437,7 @@ CascadeProcessVariables (
     StrnCatGrow(&FoundVarName, &NameSize, PrevName, 0);\r
   } else {\r
     FoundVarName = AllocateZeroPool(sizeof(CHAR16));\r
+    NameSize = sizeof(CHAR16);\r
   }\r
 \r
   Status = gRT->GetNextVariableName (&NameSize, FoundVarName, &FoundVarGuid);\r
@@ -520,10 +522,18 @@ CascadeProcessVariables (
             Status = EFI_OUT_OF_RESOURCES;\r
           }\r
         } else {\r
-          ShellPrintHiiEx (\r
-            -1, -1, NULL, STRING_TOKEN (STR_DMPSTORE_HEADER_LINE), gShellDebug1HiiHandle,\r
-            AttrString, &FoundVarGuid, FoundVarName, DataSize\r
-            );\r
+          Status = gEfiShellProtocol->GetGuidName(&FoundVarGuid, &GuidName);\r
+          if (EFI_ERROR (Status)) {\r
+            ShellPrintHiiEx (\r
+              -1, -1, NULL, STRING_TOKEN (STR_DMPSTORE_HEADER_LINE), gShellDebug1HiiHandle,\r
+              AttrString, &FoundVarGuid, FoundVarName, DataSize\r
+              );\r
+          } else {\r
+            ShellPrintHiiEx (\r
+              -1, -1, NULL, STRING_TOKEN (STR_DMPSTORE_HEADER_LINE2), gShellDebug1HiiHandle,\r
+              AttrString, GuidName, FoundVarName, DataSize\r
+              );\r
+          }\r
           DumpHex (2, 0, DataSize, DataBuffer);\r
         }\r
         SHELL_FREE_NON_NULL (AttrString);\r