MdePkg UefiLib: Fix wrong DestMax passed to StrCpyS()

The second parameter 'DestMax' of StrCpyS() should be the number of
unicode characters, not the size in bytes.

Also, code is modified to keep align with the one in
IntelFrameworkPkg\Library\FrameworkUefiLib\UefiLibPrint.c.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18160 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Hao Wu 2015-08-05 02:55:40 +00:00 committed by hwu1225
parent dba2756893
commit a3f28ac92c
1 changed files with 5 additions and 3 deletions

View File

@ -754,14 +754,16 @@ CatVSPrint (
SizeRequired = sizeof(CHAR16) + (CharactersRequired * sizeof(CHAR16));
}
BufferToReturn = AllocateZeroPool(SizeRequired);
BufferToReturn = AllocatePool(SizeRequired);
if (BufferToReturn == NULL) {
return NULL;
} else {
BufferToReturn[0] = L'\0';
}
if (String != NULL) {
StrCpyS(BufferToReturn, SizeRequired, String);
StrCpyS(BufferToReturn, SizeRequired / sizeof(CHAR16), String);
}
UnicodeVSPrint(BufferToReturn + StrLen(BufferToReturn), (CharactersRequired+1) * sizeof(CHAR16), FormatString, Marker);