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 <hao.a.wu@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17935 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Hao Wu 2015-07-13 01:24:44 +00:00 committed by hwu1225
parent c1fd37cd6b
commit 6bc4e42f9d
1 changed files with 9 additions and 6 deletions

View File

@ -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;