Reviewed-by: Star Zeng <star.z...@intel.com>

-----Original Message-----
From: Qiu, Shumin 
Sent: Tuesday, July 7, 2015 4:24 PM
To: edk2-devel@lists.sourceforge.net
Cc: Qiu, Shumin; Zeng, Star
Subject: [edk2][PATCH] MdeModulePkg: Refine code to use Strn**S safe functions 
instead of Str**S ones in some cases.

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....@intel.com>
CC: Star Zeng <star.z...@intel.com>
---
 MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c     | 2 +-
 MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c         | 4 ++--
 MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c 
b/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c
index b425af1..f69a3e7 100644
--- a/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c
+++ b/MdeModulePkg/Application/MemoryProfileInfo/MemoryProfileInfo.c
@@ -201,7 +201,7 @@ GetDriverNameString (
       //
       // Method 2: Get the name string from FFS UI section
       //
-      StrCpyS (mNameString, PROFILE_NAME_STRING_LENGTH + 1, NameString);
+      StrnCpyS (mNameString, PROFILE_NAME_STRING_LENGTH + 1, 
+ NameString, PROFILE_NAME_STRING_LENGTH);
       mNameString[PROFILE_NAME_STRING_LENGTH] = 0;
       FreePool (NameString);
       return;
diff --git a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c 
b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
index 4eb47d1..0b5a717 100644
--- a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
+++ b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
@@ -190,10 +190,10 @@ StartPerformanceMeasurementEx (
   LogEntryArray[Index].Handle = (EFI_PHYSICAL_ADDRESS) (UINTN) Handle;
 
   if (Token != NULL) {
-    AsciiStrCpyS (LogEntryArray[Index].Token, PEI_PERFORMANCE_STRING_SIZE, 
Token);
+    AsciiStrnCpyS (LogEntryArray[Index].Token, 
+ PEI_PERFORMANCE_STRING_SIZE, Token, PEI_PERFORMANCE_STRING_LENGTH);
   }
   if (Module != NULL) {
-    AsciiStrCpyS (LogEntryArray[Index].Module, PEI_PERFORMANCE_STRING_SIZE, 
Module);
+    AsciiStrnCpyS (LogEntryArray[Index].Module, 
+ PEI_PERFORMANCE_STRING_SIZE, Module, PEI_PERFORMANCE_STRING_LENGTH);
   }
 
   LogEntryArray[Index].EndTimeStamp = 0; diff --git 
a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c 
b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c
index 485f713..f28b657 100644
--- a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c
+++ b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c
@@ -203,10 +203,10 @@ StartGaugeEx (
   GaugeEntryExArray[Index].Handle = (EFI_PHYSICAL_ADDRESS) (UINTN) Handle;
 
   if (Token != NULL) {
-    AsciiStrCpyS (GaugeEntryExArray[Index].Token, SMM_PERFORMANCE_STRING_SIZE, 
Token);
+    AsciiStrnCpyS (GaugeEntryExArray[Index].Token, 
+ SMM_PERFORMANCE_STRING_SIZE, Token, SMM_PERFORMANCE_STRING_LENGTH);
   }
   if (Module != NULL) {
-    AsciiStrCpyS (GaugeEntryExArray[Index].Module, 
SMM_PERFORMANCE_STRING_SIZE, Module);
+    AsciiStrnCpyS (GaugeEntryExArray[Index].Module, 
+ SMM_PERFORMANCE_STRING_SIZE, Module, SMM_PERFORMANCE_STRING_LENGTH);
   }
 
   GaugeEntryExArray[Index].EndTimeStamp = 0;
--
1.9.5.msysgit.1


------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to