From 6bc4e42f9d043bcda03f03a74e6dec0aa5c0ead1 Mon Sep 17 00:00:00 2001 From: Hao Wu Date: Mon, 13 Jul 2015 01:24:44 +0000 Subject: PerformancePkg Dp_App: Fix ASSERT in GetNameFromHandle This commit will resolve the issue brought by r17745. StrCpyS (mGaugeString, DP_GAUGE_STRING_LENGTH + 1, StringPtr); The above using of StrCpyS will cause ASSERT if StringPtr is longer than mGaugeString. Therefore, StrnCpyS is used here to resolve the issue. Similar scenario is for: StrCpyS (mGaugeString, DP_GAUGE_STRING_LENGTH + 1, NameString); (twice) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu Reviewed-by: Star Zeng git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17935 6f19259b-4bc3-4df7-8a09-765794883524 --- PerformancePkg/Dp_App/DpUtilities.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'PerformancePkg') diff --git a/PerformancePkg/Dp_App/DpUtilities.c b/PerformancePkg/Dp_App/DpUtilities.c index 38d7aa37f1..ec5a524475 100644 --- a/PerformancePkg/Dp_App/DpUtilities.c +++ b/PerformancePkg/Dp_App/DpUtilities.c @@ -290,10 +290,11 @@ GetNameFromHandle ( ); SafeFreePool (BestLanguage); if (!EFI_ERROR (Status)) { - StrCpyS ( + StrnCpyS ( mGaugeString, DP_GAUGE_STRING_LENGTH + 1, - StringPtr + StringPtr, + DP_GAUGE_STRING_LENGTH ); return; } @@ -337,10 +338,11 @@ GetNameFromHandle ( // // Method 3. Get the name string from FFS UI section // - StrCpyS ( + StrnCpyS ( mGaugeString, DP_GAUGE_STRING_LENGTH + 1, - NameString + NameString, + DP_GAUGE_STRING_LENGTH ); FreePool (NameString); } else { @@ -356,10 +358,11 @@ GetNameFromHandle ( // NameString = ConvertDevicePathToText (LoadedImageDevicePath, TRUE, FALSE); if (NameString != NULL) { - StrCpyS ( + StrnCpyS ( mGaugeString, DP_GAUGE_STRING_LENGTH + 1, - NameString + NameString, + DP_GAUGE_STRING_LENGTH ); FreePool (NameString); return; -- cgit