]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/UefiBootManagerLib/BmPerformance.c
MdeModulePkg/Library/UefiBootManagerLib: Use safe string functions to refine code.
[mirror_edk2.git] / MdeModulePkg / Library / UefiBootManagerLib / BmPerformance.c
index 32229d0b0a02ba96f6e9eee1e2b355c595167c25..dd937a7396bba729c3bd68ac119a72010ee81a6d 100644 (file)
@@ -26,12 +26,14 @@ EFI_PHYSICAL_ADDRESS      mBmAcpiLowMemoryBase = 0x0FFFFFFFFULL;
 \r
   @param PdbFileName     The long PDB file name.\r
   @param GaugeString     The output string to be logged by performance logger.\r
+  @param StringSize      The buffer size of GaugeString in bytes.\r
 \r
 **/\r
 VOID\r
 BmGetShortPdbFileName (\r
   IN  CONST CHAR8  *PdbFileName,\r
-  OUT       CHAR8  *GaugeString\r
+  OUT       CHAR8  *GaugeString,\r
+  IN        UINTN   StringSize\r
   )\r
 {\r
   UINTN Index;\r
@@ -40,7 +42,7 @@ BmGetShortPdbFileName (
   UINTN EndIndex;\r
 \r
   if (PdbFileName == NULL) {\r
-    AsciiStrCpy (GaugeString, " ");\r
+    AsciiStrCpyS (GaugeString, StringSize, " ");\r
   } else {\r
     StartIndex = 0;\r
     for (EndIndex = 0; PdbFileName[EndIndex] != 0; EndIndex++)\r
@@ -78,12 +80,14 @@ BmGetShortPdbFileName (
 \r
   @param Handle          Driver handle.\r
   @param GaugeString     The output string to be logged by performance logger.\r
+  @param StringSize      The buffer size of GaugeString in bytes.\r
 \r
 **/\r
 VOID\r
 BmGetNameFromHandle (\r
   IN  EFI_HANDLE     Handle,\r
-  OUT CHAR8          *GaugeString\r
+  OUT CHAR8          *GaugeString,\r
+  IN  UINTN          StringSize\r
   )\r
 {\r
   EFI_STATUS                  Status;\r
@@ -91,7 +95,7 @@ BmGetNameFromHandle (
   CHAR8                       *PdbFileName;\r
   EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;\r
 \r
-  AsciiStrCpy (GaugeString, " ");\r
+  AsciiStrCpyS (GaugeString, StringSize, " ");\r
 \r
   //\r
   // Get handle name from image protocol\r
@@ -127,7 +131,7 @@ BmGetNameFromHandle (
   PdbFileName = PeCoffLoaderGetPdbPointer (Image->ImageBase);\r
 \r
   if (PdbFileName != NULL) {\r
-    BmGetShortPdbFileName (PdbFileName, GaugeString);\r
+    BmGetShortPdbFileName (PdbFileName, GaugeString, StringSize);\r
   }\r
 \r
   return ;\r
@@ -285,9 +289,9 @@ BmWriteBootToOsPerformanceData (
 \r
     if (Duration > 0) {\r
 \r
-      BmGetNameFromHandle (Handles[Index], GaugeString);\r
+      BmGetNameFromHandle (Handles[Index], GaugeString, PERF_TOKEN_LENGTH);\r
 \r
-      AsciiStrCpy (mBmPerfData.Token, GaugeString);\r
+      AsciiStrCpyS (mBmPerfData.Token, PERF_TOKEN_SIZE, GaugeString);\r
       mBmPerfData.Duration = Duration;\r
 \r
       CopyMem (Ptr, &mBmPerfData, sizeof (PERF_DATA));\r
@@ -316,7 +320,7 @@ BmWriteBootToOsPerformanceData (
 \r
       ZeroMem (&mBmPerfData, sizeof (PERF_DATA));\r
 \r
-      AsciiStrnCpy (mBmPerfData.Token, Token, PERF_TOKEN_LENGTH);\r
+      AsciiStrCpyS (mBmPerfData.Token, PERF_TOKEN_SIZE, Token);\r
       if (StartTicker == 1) {\r
         StartTicker = StartValue;\r
       }\r