]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDebug1CommandsLib/Comp.c
ShellPkg/for: Fix potential null pointer deference
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / Comp.c
index 5b91327efcb7d219ceb9b514b565057641439eed..f45f663dbbbf20399274f47f62a67907796b4b91 100644 (file)
@@ -30,7 +30,8 @@ typedef enum {
 /**\r
   Function to print differnt point data.\r
 \r
-  @param[in]  FileName        File name\r
+  @param[in]  FileName        File name.\r
+  @param[in]  FileTag         File tag name.\r
   @param[in]  Buffer          Data buffer to be printed.\r
   @param[in]  BufferSize      Size of the data to be printed.\r
   @param[in]  Address         Address of the differnt point.\r
@@ -40,24 +41,25 @@ typedef enum {
 VOID\r
 PrintDifferentPoint(\r
   CONST CHAR16  *FileName,\r
+  CHAR16        *FileTag,\r
   UINT8         *Buffer,\r
-  UINT64        DataSize,\r
+  UINT64        BufferSize,\r
   UINTN         Address,\r
-  UINT64        BufferSize\r
+  UINT64        DifferentBytes\r
   )\r
 {\r
   UINTN Index;\r
 \r
-  ShellPrintEx (-1, -1, L"%s: %s\r\n  %08x:", L"File1", FileName, Address);\r
+  ShellPrintEx (-1, -1, L"%s: %s\r\n  %08x:", FileTag, FileName, Address);\r
 \r
   //\r
   // Print data in hex-format.\r
   //\r
-  for (Index = 0; Index < DataSize; Index++) {\r
+  for (Index = 0; Index < BufferSize; Index++) {\r
     ShellPrintEx (-1, -1, L" %02x", Buffer[Index]);\r
   }\r
 \r
-  if (DataSize < BufferSize) {\r
+  if (BufferSize < DifferentBytes) {\r
     ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_COMP_END_OF_FILE), gShellDebug1HiiHandle);\r
   }\r
 \r
@@ -66,7 +68,7 @@ PrintDifferentPoint(
   //\r
   // Print data in char-format.\r
   //\r
-  for (Index = 0; Index < DataSize; Index++) {\r
+  for (Index = 0; Index < BufferSize; Index++) {\r
     if (Buffer[Index] >= 0x20 && Buffer[Index] <= 0x7E) {\r
       ShellPrintEx (-1, -1, L"%c", Buffer[Index]);\r
     } else {\r
@@ -302,8 +304,8 @@ ShellCommandRunComp (
              ) {\r
 \r
             ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_COMP_DIFFERENCE_POINT), gShellDebug1HiiHandle, ++DiffPointNumber);\r
-            PrintDifferentPoint (FileName1, DataFromFile1, InsertPosition1, DiffPointAddress, DifferentBytes);\r
-            PrintDifferentPoint (FileName2, DataFromFile2, InsertPosition2, DiffPointAddress, DifferentBytes);\r
+            PrintDifferentPoint (FileName1, L"File1", DataFromFile1, InsertPosition1, DiffPointAddress, DifferentBytes);\r
+            PrintDifferentPoint (FileName2, L"File2", DataFromFile2, InsertPosition2, DiffPointAddress, DifferentBytes);\r
 \r
             //\r
             // One of two buffuers is empty, it means this is the last different point.\r