I think maybe the subject could be improved. I prefer to describe the problem instead.
IntelFrameworkPkg FrameworkUefiLib: Fix ASSERT in CatVSPrint Then, I think you can mention the r17740 regression in the main body of the commit message. I also have a suggestion below. On 2015-07-07 17:46:35, Hao Wu wrote: > 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...@intel.com> > Reviewed-by: Qiu Shumin <shumin....@intel.com> > --- > IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLibPrint.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLibPrint.c > b/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLibPrint.c > index 9a9503e..c02e653 100644 > --- a/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLibPrint.c > +++ b/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLibPrint.c > @@ -754,12 +754,16 @@ CatVSPrint ( > SizeRequired = sizeof(CHAR16) + (CharactersRequired * sizeof(CHAR16)); > } > > - BufferToReturn = AllocateCopyPool(SizeRequired, String); > + BufferToReturn = AllocateZeroPool(SizeRequired); What about something like this instead? if (String != NULL) { BufferToReturn = AllocateCopyPool(SizeRequired, String); } else { BufferToReturn = AllocatePool(SizeRequired); BufferToReturn[0] = L'\0'; } This prevents zero'ing the buffer and then copying over it, and if String is NULL, it only null terminates the buffer rather than zero'ing it entirely. -Jordan > > if (BufferToReturn == NULL) { > return NULL; > } > > + if (String != NULL) { > + StrCpyS(BufferToReturn, SizeRequired, String); > + } > + > UnicodeVSPrint(BufferToReturn + StrLen(BufferToReturn), > (CharactersRequired+1) * sizeof(CHAR16), FormatString, Marker); > > ASSERT(StrSize(BufferToReturn)==SizeRequired); > -- > 1.9.5.msysgit.0 > > > ------------------------------------------------------------------------------ > 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 ------------------------------------------------------------------------------ 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