summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-02-22 06:30:41 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2010-02-22 06:30:41 +0000
commitb86b413a96f12d45debb91afdcb24def2ef4772a (patch)
treefcfd7283b9768b8e1bf1cacb724197564a9e25d5 /MdeModulePkg/Universal/HiiDatabaseDxe/String.c
parent1a395747fddd3cd74c5e8f07c0033858a454a46d (diff)
downloadedk2-platforms-b86b413a96f12d45debb91afdcb24def2ef4772a.tar.xz
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
Diffstat (limited to 'MdeModulePkg/Universal/HiiDatabaseDxe/String.c')
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/String.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
index 5fc3642115..321b2f7040 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c
@@ -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;
}