1. Update GetStringWorker() of HiiDataBaseDxe to only search in other language and not update the StringSize to avoid GetString() buffer overflow.

2. Update SetupBrowser to correctly handle ordered list option.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10041 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4
2010-02-22 06:30:41 +00:00
parent 1a395747fd
commit b86b413a96
3 changed files with 27 additions and 4 deletions

View File

@ -599,7 +599,7 @@ GetStringWorker (
IN HII_STRING_PACKAGE_INSTANCE *StringPackage,
IN EFI_STRING_ID StringId,
OUT EFI_STRING String,
IN OUT UINTN *StringSize,
IN OUT UINTN *StringSize, OPTIONAL
OUT EFI_FONT_INFO **StringFontInfo OPTIONAL
)
{
@ -610,7 +610,7 @@ GetStringWorker (
EFI_STATUS Status;
UINT8 FontId;
ASSERT (StringPackage != NULL && StringSize != NULL);
ASSERT (StringPackage != NULL);
ASSERT (Private != NULL && Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE);
//
@ -629,6 +629,13 @@ GetStringWorker (
return Status;
}
if (StringSize == NULL) {
//
// String text buffer is not requested
//
return EFI_SUCCESS;
}
//
// Get the string text.
//
@ -1471,7 +1478,7 @@ HiiGetString (
Link = Link->ForwardLink
) {
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);
Status = GetStringWorker (Private, StringPackage, StringId, String, StringSize, StringFontInfo);
Status = GetStringWorker (Private, StringPackage, StringId, NULL, NULL, NULL);
if (!EFI_ERROR (Status)) {
return EFI_INVALID_LANGUAGE;
}