Fix a potential bug that GetLanguages() API may return incorrect languages in a string package when the *LanguageSize == OutputSize.

This issue was hidden since UefiHiiLib API HiiLibGetSupportedLanguages() allocates large enough (4K) buffer to get the supported languages.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7953 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2009-03-25 09:41:09 +00:00
parent d26b17e3c7
commit 2fef9e5f7a

View File

@ -1536,7 +1536,7 @@ HiiGetLanguages (
) {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
ResultSize += AsciiStrSize (StringPackage->StringPkgHdr->Language);
if (ResultSize < *LanguagesSize) {
if (ResultSize <= *LanguagesSize) {
AsciiStrCpy (Languages, StringPackage->StringPkgHdr->Language);
Languages += AsciiStrSize (StringPackage->StringPkgHdr->Language);
*(Languages - 1) = L';';