mirror of https://github.com/acidanthera/audk.git
IntelFrameworkPkg FrameworkUefiLib: Fix ASSERT in CatVSPrint
This commit will resolve issue brought by r17740. BufferToReturn = AllocateCopyPool(SizeRequired, String); The above using of AllocateCopyPool() will cause ASSERT if 'String' is NULL. Therefore, proper check for 'String' is needed. The above using of AllocateCopyPool() will read contents out of the scope of 'String'. Potential risk for 'String' allocated at the boundary of memory region. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17906 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
28e80befa4
commit
4129b837ae
|
@ -754,10 +754,16 @@ CatVSPrint (
|
|||
SizeRequired = sizeof(CHAR16) + (CharactersRequired * sizeof(CHAR16));
|
||||
}
|
||||
|
||||
BufferToReturn = AllocateCopyPool(SizeRequired, String);
|
||||
BufferToReturn = AllocatePool(SizeRequired);
|
||||
|
||||
if (BufferToReturn == NULL) {
|
||||
return NULL;
|
||||
} else {
|
||||
BufferToReturn[0] = L'\0';
|
||||
}
|
||||
|
||||
if (String != NULL) {
|
||||
StrCpyS(BufferToReturn, SizeRequired, String);
|
||||
}
|
||||
|
||||
UnicodeVSPrint(BufferToReturn + StrLen(BufferToReturn), (CharactersRequired+1) * sizeof(CHAR16), FormatString, Marker);
|
||||
|
|
Loading…
Reference in New Issue