diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootOption.c b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootOption.c index 97e808c60a..5fb764c297 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootOption.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootOption.c @@ -1050,7 +1050,7 @@ BOpt_GetBootOptions ( } if (HiiString != NULL) { - NewLoadContext->Description = AllocateZeroPool(StrSize((UINT16*)LoadOptionPtr) + StrSize(HiiString)); + NewLoadContext->Description = AllocateZeroPool(StringSize + StrSize(HiiString)); StrCpy (NewLoadContext->Description, HiiString); if (StrnCmp ((UINT16*)LoadOptionPtr, L"0", 1) != 0) { StrCat (NewLoadContext->Description, L" "); diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMngr/BootManager.c b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMngr/BootManager.c index fcf6c7bb36..817b2e0e0b 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/BootMngr/BootManager.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BootMngr/BootManager.c @@ -204,6 +204,7 @@ CallBootManager ( CHAR16 *HiiString; CHAR16 *BootStringNumber; UINTN DevicePathType; + UINTN BufferSize; gOption = NULL; InitializeListHead (&BdsBootOptionList); @@ -312,7 +313,9 @@ CallBootManager ( // if (HiiString != NULL) { BootStringNumber = Option->Description; - Option->Description = AllocateZeroPool(StrSize(BootStringNumber) + StrSize(HiiString)); + BufferSize = StrSize(BootStringNumber); + BufferSize += StrSize(HiiString); + Option->Description = AllocateZeroPool(BufferSize); StrCpy (Option->Description, HiiString); if (StrnCmp (BootStringNumber, L"0", 1) != 0) { StrCat (Option->Description, L" ");