// Collect current supported Languages for given HII handle\r
//\r
BufferSize = 0x1000;\r
- LanguageString = AllocatePool (BufferSize);\r
+ LanguageString = AllocateZeroPool (BufferSize);\r
+ if (LanguageString == NULL) {\r
+ return NULL;\r
+ }\r
+ \r
Status = mHiiStringProt->GetLanguages (mHiiStringProt, HiiHandle, LanguageString, &BufferSize);\r
\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
gBS->FreePool (LanguageString);\r
- LanguageString = AllocatePool (BufferSize);\r
+ LanguageString = AllocateZeroPool (BufferSize);\r
+ if (LanguageString == NULL) {\r
+ return NULL;\r
+ }\r
+\r
Status = mHiiStringProt->GetLanguages (mHiiStringProt, HiiHandle, LanguageString, &BufferSize);\r
}\r
\r
\r
return LangNumber;\r
}\r
+\r
+CHAR8 *\r
+EFIAPI\r
+HiiLibGetSupportedSecondaryLanguages (\r
+ IN EFI_HII_HANDLE HiiHandle,\r
+ IN CONST CHAR8 *FirstLanguage\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ UINTN BufferSize;\r
+ CHAR8 *LanguageString;\r
+\r
+ ASSERT (HiiHandle != NULL);\r
+ ASSERT (IsHiiHandleRegistered (HiiHandle));\r
+ //\r
+ // Collect current supported 2nd Languages for given HII handle\r
+ //\r
+ BufferSize = 0x1000;\r
+ LanguageString = AllocateZeroPool (BufferSize);\r
+ if (LanguageString == NULL) {\r
+ return NULL;\r
+ }\r
+ Status = mHiiStringProt->GetSecondaryLanguages (mHiiStringProt, HiiHandle, FirstLanguage, LanguageString, &BufferSize);\r
+ \r
+ if (Status == EFI_BUFFER_TOO_SMALL) {\r
+ gBS->FreePool (LanguageString);\r
+ LanguageString = AllocateZeroPool (BufferSize);\r
+ if (LanguageString == NULL) {\r
+ return NULL;\r
+ }\r
+\r
+ Status = mHiiStringProt->GetSecondaryLanguages (mHiiStringProt, HiiHandle, FirstLanguage, LanguageString, &BufferSize);\r
+ }\r
+\r
+ if (EFI_ERROR (Status)) {\r
+ LanguageString = NULL;\r
+ }\r
+\r
+ return LanguageString;\r
+}\r
+\r
+\r