From: rsun3 Date: Thu, 16 Apr 2009 07:02:42 +0000 (+0000) Subject: Fix an issue that an assert occurrs if user inputs a password whose length is less... X-Git-Tag: edk2-stable201903~18161 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=887c077d91a648a5e206cc19790878ebf521745e Fix an issue that an assert occurrs if user inputs a password whose length is less than the minimum required length. The root cause is that under such case the Form Browser will pass a null string (string ID = 0) to the Config Access callback. The callback handler does not handle such case correctly. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8103 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/ConfigAccess.c b/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/ConfigAccess.c index ac6f2ac244..b8d0021303 100644 --- a/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/ConfigAccess.c +++ b/EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/ConfigAccess.c @@ -690,10 +690,14 @@ CreateIfrDataArray ( break; case EFI_IFR_TYPE_STRING: - String = HiiGetString (ConfigAccess->ThunkContext->UefiHiiHandle, Value->string, NULL); - ASSERT (String != NULL); + if (Value->string == 0) { + Size = 0; + } else { + String = HiiGetString (ConfigAccess->ThunkContext->UefiHiiHandle, Value->string, NULL); + ASSERT (String != NULL); - Size = StrSize (String); + Size = StrSize (String); + } break; default: @@ -741,9 +745,11 @@ CreateIfrDataArray ( break; case EFI_IFR_TYPE_STRING: - ASSERT (String != NULL); - StrCpy ((CHAR16 *) &IfrDataEntry->Data, String); - FreePool (String); + if (Size != 0) { + ASSERT (String != NULL); + StrCpy ((CHAR16 *) &IfrDataEntry->Data, String); + FreePool (String); + } break; default: ASSERT (FALSE);