diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c index 3d70207952..b1a3374991 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c @@ -2556,7 +2556,7 @@ ExportPackageList ( UINTN ResultSize; EFI_HII_PACKAGE_HEADER EndofPackageList; - ASSERT (Private != NULL || PackageList != NULL || UsedSize != NULL); + ASSERT (Private != NULL && PackageList != NULL && UsedSize != NULL); ASSERT (Private->Signature == HII_DATABASE_PRIVATE_DATA_SIGNATURE); ASSERT (IsHiiHandleValid (Handle)); diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c index 06b09e7f76..82f47163b7 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Font.c @@ -1566,6 +1566,7 @@ HiiStringToImage ( Status = EFI_SUCCESS; StringIn2 = NULL; SystemDefault = NULL; + StringIn = NULL; // // Calculate the string output information, including specified color and font . @@ -1596,11 +1597,13 @@ HiiStringToImage ( Foreground = ((EFI_FONT_DISPLAY_INFO *) StringInfo)->ForegroundColor; Background = ((EFI_FONT_DISPLAY_INFO *) StringInfo)->BackgroundColor; - } else { + } else if (Status == EFI_SUCCESS) { FontInfo = &StringInfoOut->FontInfo; Height = StringInfoOut->FontInfo.FontSize; Foreground = StringInfoOut->ForegroundColor; Background = StringInfoOut->BackgroundColor; + } else { + goto Exit; } } @@ -1609,7 +1612,6 @@ HiiStringToImage ( // StringPtr = String; - StringIn = NULL; // // Ignore line-break characters only. Hyphens or dash character will be displayed diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c index 8c207f9476..64148fe131 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c @@ -124,7 +124,7 @@ ConvertToUnicodeText ( ASSERT (StringSrc != NULL && BufferSize != NULL); StringSize = AsciiStrSize (StringSrc) * 2; - if (*BufferSize < StringSize) { + if (*BufferSize < StringSize || StringDest == NULL) { *BufferSize = StringSize; return EFI_BUFFER_TOO_SMALL; }