MdeModulePkg: Refine code to use Strn**S safe functions instead of Str**S ones in...
authorQiu Shumin <shumin.qiu@intel.com>
Wed, 8 Jul 2015 01:08:09 +0000 (01:08 +0000)
committershenshushi <shenshushi@Edk2>
Wed, 8 Jul 2015 01:08:09 +0000 (01:08 +0000)
Safe string functions may ASSERT when the source length is larger than the MaxDest. This patch use Strn**S to indicate the copy length.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17867 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c
MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c

index b425af17c20720a7d0c08a652efc6e0d32429839..f69a3e77486a82368f127e42b5280fb2c3608865 100644 (file)
@@ -201,7 +201,7 @@ GetDriverNameString (
       //\r
       // Method 2: Get the name string from FFS UI section\r
       //\r
-      StrCpyS (mNameString, PROFILE_NAME_STRING_LENGTH + 1, NameString);\r
+      StrnCpyS (mNameString, PROFILE_NAME_STRING_LENGTH + 1, NameString, PROFILE_NAME_STRING_LENGTH);\r
       mNameString[PROFILE_NAME_STRING_LENGTH] = 0;\r
       FreePool (NameString);\r
       return;\r
index 4eb47d1386aa91fab2f5fbeac058dde7651fff94..0b5a717caa01890f8e64aea12675f24894fefa21 100644 (file)
@@ -190,10 +190,10 @@ StartPerformanceMeasurementEx (
   LogEntryArray[Index].Handle = (EFI_PHYSICAL_ADDRESS) (UINTN) Handle;\r
 \r
   if (Token != NULL) {\r
-    AsciiStrCpyS (LogEntryArray[Index].Token, PEI_PERFORMANCE_STRING_SIZE, Token);\r
+    AsciiStrnCpyS (LogEntryArray[Index].Token, PEI_PERFORMANCE_STRING_SIZE, Token, PEI_PERFORMANCE_STRING_LENGTH);\r
   }\r
   if (Module != NULL) {\r
-    AsciiStrCpyS (LogEntryArray[Index].Module, PEI_PERFORMANCE_STRING_SIZE, Module);\r
+    AsciiStrnCpyS (LogEntryArray[Index].Module, PEI_PERFORMANCE_STRING_SIZE, Module, PEI_PERFORMANCE_STRING_LENGTH);\r
   }\r
 \r
   LogEntryArray[Index].EndTimeStamp = 0;\r
index 485f713864eb62016bc832cad6aea7d6c4a9be16..f28b657c94ddba3fb012296f8721b44b264f8c76 100644 (file)
@@ -203,10 +203,10 @@ StartGaugeEx (
   GaugeEntryExArray[Index].Handle = (EFI_PHYSICAL_ADDRESS) (UINTN) Handle;\r
 \r
   if (Token != NULL) {\r
-    AsciiStrCpyS (GaugeEntryExArray[Index].Token, SMM_PERFORMANCE_STRING_SIZE, Token);\r
+    AsciiStrnCpyS (GaugeEntryExArray[Index].Token, SMM_PERFORMANCE_STRING_SIZE, Token, SMM_PERFORMANCE_STRING_LENGTH);\r
   }\r
   if (Module != NULL) {\r
-    AsciiStrCpyS (GaugeEntryExArray[Index].Module, SMM_PERFORMANCE_STRING_SIZE, Module);\r
+    AsciiStrnCpyS (GaugeEntryExArray[Index].Module, SMM_PERFORMANCE_STRING_SIZE, Module, SMM_PERFORMANCE_STRING_LENGTH);\r
   }\r
 \r
   GaugeEntryExArray[Index].EndTimeStamp = 0;\r