From a0973dcb7730fffd66dfd9f25e4be2ea399a00c5 Mon Sep 17 00:00:00 2001 From: Dandan Bi Date: Mon, 3 Aug 2015 09:44:04 +0000 Subject: [PATCH] MdeModulePkg:Fix the issue FindQuestionFromProgress in SetupBrowserDxe is broken If the storage of the question is EFI_HII_VARSTORE_BUFFER/EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER, in SetupBrowserDxe the configuration stings contain uppercase,but HiiDataBaseDxe generates the ConfigResp string in lowercase,they mismatch,so FindQuestionFromProgress function is broken. Now convert the configuration string in SetupBrowserDxe to lowercase to fix this issue. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi Reviewed-by: Liming Gao git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18143 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c | 1 + MdeModulePkg/Universal/SetupBrowserDxe/Setup.h | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c index 953e3a5071..8e8607d4c0 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c +++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c @@ -715,6 +715,7 @@ InitializeRequestElement ( Question->VarStoreInfo.VarOffset, Question->StorageWidth ); + HiiToLower(RequestElement); Question->BlockName = AllocateCopyPool ((StrLen + 1) * sizeof (CHAR16), RequestElement); } else { StrLen = UnicodeSPrint (RequestElement, 30 * sizeof (CHAR16), L"&%s", Question->VariableName); diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h index cfd81334d9..1238197535 100644 --- a/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h +++ b/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h @@ -1849,4 +1849,17 @@ ReconnectController ( IN EFI_HANDLE DriverHandle ); +/** + Converts the unicode character of the string from uppercase to lowercase. + This is a internal function. + + @param ConfigString String to be converted + +**/ +VOID +EFIAPI +HiiToLower ( + IN EFI_STRING ConfigString + ); + #endif