From: qhuang8 Date: Wed, 23 Dec 2009 01:50:10 +0000 (+0000) Subject: Fix a bug in MdePkg BaseLib: StrnCat() and AsciiStrnCat() should NULL terminated... X-Git-Tag: edk2-stable201903~16733 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=8f635c36ad1059a064c747fd1f0e38814e7e7c29;p=mirror_edk2.git Fix a bug in MdePkg BaseLib: StrnCat() and AsciiStrnCat() should NULL terminated the final destination string when Length is equal to the length of Source string git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9588 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/MdePkg/Library/BaseLib/String.c b/MdePkg/Library/BaseLib/String.c index 31ea36de41..afbad1d4e3 100644 --- a/MdePkg/Library/BaseLib/String.c +++ b/MdePkg/Library/BaseLib/String.c @@ -425,7 +425,11 @@ StrnCat ( IN UINTN Length ) { - StrnCpy (Destination + StrLen (Destination), Source, Length); + UINTN DestinationLen; + + DestinationLen = StrLen (Destination); + StrnCpy (Destination + DestinationLen, Source, Length); + Destination[DestinationLen + Length] = L'\0'; // // Size of the resulting string should never be zero. @@ -1566,7 +1570,11 @@ AsciiStrnCat ( IN UINTN Length ) { - AsciiStrnCpy (Destination + AsciiStrLen (Destination), Source, Length); + UINTN DestinationLen; + + DestinationLen = AsciiStrLen (Destination); + AsciiStrnCpy (Destination + DestinationLen, Source, Length); + Destination[DestinationLen + Length] = '\0'; // // Size of the resulting string should never be zero.