- Status = Hii->GetString (Hii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, StringBuffer);\r
- Hii->NewString (Hii, NULL, gStringPackHandle, &Token, StringBuffer);\r
+ BufferSize = 0;\r
+ Status = gHii->GetString (gHii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, NULL);\r
+ ASSERT(Status == EFI_BUFFER_TOO_SMALL);\r
+ StringBuffer = AllocateZeroPool (BufferSize);\r
+ ASSERT (StringBuffer != NULL);\r
+ Status = gHii->GetString (gHii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, StringBuffer);\r
+ gHii->NewString (gHii, NULL, gStringPackHandle, &Token, StringBuffer);\r
+ FreePool (StringBuffer);\r