]> git.proxmox.com Git - mirror_edk2.git/commitdiff
EmbeddedPkg/Ebl: eliminate deprecated string function calls
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Mon, 24 Oct 2016 17:30:37 +0000 (18:30 +0100)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 28 Oct 2016 14:53:59 +0000 (15:53 +0100)
Get rid of calls to unsafe string functions. These are deprecated and may
be removed in the future.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
EmbeddedPkg/Ebl/Command.c
EmbeddedPkg/Ebl/Dir.c
EmbeddedPkg/Ebl/EfiDevice.c
EmbeddedPkg/Ebl/Main.c
EmbeddedPkg/Ebl/Variable.c

index e75c6a2e5c32cc8fd794b7e685776b35d6ef453d..4bc1f4df0ca02e4be56014dd3ecdad98a9b24eb7 100644 (file)
@@ -614,7 +614,7 @@ OutputData (
   UINTN Spaces   = 0;\r
   CHAR8 Blanks[80];\r
 \r
-  AsciiStrCpy (Blanks, mBlanks);\r
+  AsciiStrCpyS (Blanks, sizeof Blanks, mBlanks);\r
   for (EndAddress = Address + Length; Address < EndAddress; Offset += Line) {\r
     AsciiPrint ("%08x: ", Offset);\r
     for (Line = 0; (Line < 0x10) && (Address < EndAddress);) {\r
index 36095b6330194d47c0e4b599151f0dcb6e21b8d0..a73c88d3aa2d2724dc0db37a482045ee8eb2321f 100644 (file)
@@ -116,7 +116,8 @@ EblDirCmd (
     UnicodeFileName[0] = '\0';\r
     MatchSubString = &UnicodeFileName[0];\r
     if (Argc > 2) {\r
-      AsciiStrToUnicodeStr (Argv[2], UnicodeFileName);\r
+      AsciiStrToUnicodeStrS (Argv[2], UnicodeFileName,\r
+        ARRAY_SIZE (UnicodeFileName));\r
       if (UnicodeFileName[0] == '*') {\r
         // Handle *Name substring matching\r
         MatchSubString = &UnicodeFileName[1];\r
@@ -231,7 +232,7 @@ EblDirCmd (
     MatchSubString = NULL;\r
     UnicodeFileName[0] = '\0';\r
     if (Argc > 2) {\r
-      AsciiStrToUnicodeStr (Argv[2], UnicodeFileName);\r
+      AsciiStrToUnicodeStrS (Argv[2], UnicodeFileName, MAX_CMD_LINE);\r
       if (UnicodeFileName[0] == '*') {\r
         MatchSubString = &UnicodeFileName[1];\r
       }\r
index ec9c331b70047bad00a60105eab2926eaf3a03ec..f6969e7b2b05ab63067a01a3d00613832bb73c01 100644 (file)
@@ -343,7 +343,7 @@ EblStartCmd (
 \r
       ImageInfo->LoadOptionsSize = (UINT32)AsciiStrSize (Argv[2]);\r
       ImageInfo->LoadOptions     = AllocatePool (ImageInfo->LoadOptionsSize);\r
-      AsciiStrCpy (ImageInfo->LoadOptions, Argv[2]);\r
+      AsciiStrCpyS (ImageInfo->LoadOptions, ImageInfo->LoadOptionsSize, Argv[2]);\r
     }\r
 \r
     // Transfer control to the EFI image we loaded with LoadImage()\r
@@ -741,7 +741,7 @@ EblFileCopyCmd (
   UINTN         Size;\r
   UINTN         Offset;\r
   UINTN         Chunk        = FILE_COPY_CHUNK;\r
-  UINTN         FileNameLen;\r
+  UINTN         FileNameLen, DestFileNameLen;\r
   CHAR8*        DestFileName;\r
   CHAR8*        SrcFileName;\r
   CHAR8*        SrcPtr;\r
@@ -786,9 +786,10 @@ EblFileCopyCmd (
     }\r
 \r
     // Construct the destination filepath\r
-    DestFileName = (CHAR8*)AllocatePool (FileNameLen + AsciiStrLen (SrcFileName) + 1);\r
-    AsciiStrCpy (DestFileName, Argv[2]);\r
-    AsciiStrCat (DestFileName, SrcFileName);\r
+    DestFileNameLen = FileNameLen + AsciiStrLen (SrcFileName) + 1;\r
+    DestFileName = (CHAR8*)AllocatePool (DestFileNameLen);\r
+    AsciiStrCpyS (DestFileName, DestFileNameLen, Argv[2]);\r
+    AsciiStrCatS (DestFileName, DestFileNameLen, SrcFileName);\r
   }\r
 \r
   Source = EfiOpen(Argv[1], EFI_FILE_MODE_READ, 0);\r
index 18b2878f69a14d19c18094a2eb0ae33a99c65458..62f559fccfe8bbd8d2c775e13a19b943501d6a98 100644 (file)
@@ -88,7 +88,7 @@ SetCmdHistory (
     }\r
 \r
     // Copy the new command line into the ring buffer\r
-    AsciiStrnCpy(&mCmdHistory[mCmdHistoryStart][0], Cmd, MAX_CMD_LINE);\r
+    AsciiStrnCpyS (&mCmdHistory[mCmdHistoryStart][0], MAX_CMD_LINE, Cmd, MAX_CMD_LINE);\r
   }\r
 \r
   // Reset the command history for the next up arrow press\r
@@ -432,7 +432,7 @@ GetCmd (
       }\r
       AsciiPrint (History);\r
       Index = AsciiStrLen (History);\r
-      AsciiStrnCpy (Cmd, History, CmdMaxSize);\r
+      AsciiStrnCpyS (Cmd, CmdMaxSize, History, CmdMaxSize);\r
     } else {\r
       Cmd[Index++] = Char;\r
       if (FixedPcdGetBool(PcdEmbeddedShellCharacterEcho) == TRUE) {\r
@@ -644,14 +644,14 @@ EdkBootLoaderEntry (
 \r
     Status = gRT->GetVariable(CommandLineVariableName, &VendorGuid, NULL, &CommandLineVariableSize, CommandLineVariable);\r
     if (!EFI_ERROR(Status)) {\r
-      UnicodeStrToAsciiStr(CommandLineVariable, CmdLine);\r
+      UnicodeStrToAsciiStrS (CommandLineVariable, CmdLine, MAX_CMD_LINE);\r
     }\r
 \r
     FreePool(CommandLineVariable);\r
   }\r
 \r
   if (EFI_ERROR(Status)) {\r
-    AsciiStrCpy (CmdLine, (CHAR8 *)PcdGetPtr (PcdEmbeddedAutomaticBootCommand));\r
+    AsciiStrCpyS (CmdLine, MAX_CMD_LINE, (CHAR8 *)PcdGetPtr (PcdEmbeddedAutomaticBootCommand));\r
   }\r
 \r
   for (;;) {\r
index f440c48f16dd02271afd8076aa316eaac0b77bf8..92464a6b7133396ff98f4b39451c341ae154c279 100644 (file)
@@ -29,6 +29,7 @@ EblGetCmd (
   VOID*       Value;\r
   CHAR8*      AsciiVariableName = NULL;\r
   CHAR16*     VariableName;\r
+  UINTN       VariableNameLen;\r
   UINT32      Index;\r
 \r
   if (Argc == 1) {\r
@@ -48,8 +49,9 @@ EblGetCmd (
     AsciiPrint("Variable name is missing.\n");\r
     return Status;\r
   } else {\r
-    VariableName = AllocatePool((AsciiStrLen (AsciiVariableName) + 1) * sizeof (CHAR16));\r
-    AsciiStrToUnicodeStr (AsciiVariableName,VariableName);\r
+    VariableNameLen = AsciiStrLen (AsciiVariableName) + 1;\r
+    VariableName = AllocatePool (VariableNameLen * sizeof (CHAR16));\r
+    AsciiStrToUnicodeStrS (AsciiVariableName, VariableName, VariableNameLen);\r
   }\r
 \r
   // Try to get the variable size.\r
@@ -93,6 +95,7 @@ EblSetCmd (
   CHAR8*        AsciiValue;\r
   UINT32        AsciiValueLength;\r
   CHAR16*       VariableName;\r
+  UINTN         VariableNameLen;\r
   UINT32        Index;\r
   UINT32        EscapedQuotes = 0;\r
   BOOLEAN       Volatile = FALSE;\r
@@ -125,8 +128,9 @@ EblSetCmd (
     //\r
 \r
     // Convert VariableName into Unicode\r
-    VariableName = AllocatePool((AsciiStrLen (AsciiVariableSetting) + 1) * sizeof (CHAR16));\r
-    AsciiStrToUnicodeStr (AsciiVariableSetting,VariableName);\r
+    VariableNameLen = AsciiStrLen (AsciiVariableSetting) + 1;\r
+    VariableName = AllocatePool (VariableNameLen * sizeof (CHAR16));\r
+    AsciiStrToUnicodeStrS (AsciiVariableSetting, VariableName, VariableNameLen);\r
 \r
     Status = gRT->SetVariable (\r
                           VariableName,\r
@@ -170,8 +174,9 @@ EblSetCmd (
   }\r
 \r
   // Convert VariableName into Unicode\r
-  VariableName = AllocatePool((AsciiStrLen (AsciiVariableName) + 1) * sizeof (CHAR16));\r
-  AsciiStrToUnicodeStr (AsciiVariableName,VariableName);\r
+  VariableNameLen = AsciiStrLen (AsciiVariableName) + 1;\r
+  VariableName = AllocatePool (VariableNameLen * sizeof (CHAR16));\r
+  AsciiStrToUnicodeStrS (AsciiVariableName, VariableName, VariableNameLen);\r
 \r
   Status = gRT->SetVariable (\r
                       VariableName,\r