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