if (VariableHeader == NULL) {\r
return EFI_NOT_FOUND;\r
}\r
+ StartBit = 0;\r
+ EndBit = 0;\r
ByteOffset = IfrQuestionHdr->VarStoreInfo.VarOffset;\r
if (BitFieldQuestion) {\r
BitOffset = IfrQuestionHdr->VarStoreInfo.VarOffset;\r
\r
ZeroMem (&VarStoreQuestionHeader, sizeof (VarStoreQuestionHeader));\r
PackageLength = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);\r
+ Width = 0;\r
IfrOffset = 0;\r
IfrScope = 0;\r
IfrOpHdr = (EFI_IFR_OP_HEADER *) FormPackage->IfrData;\r
// Reallocate EFI VarStore Buffer\r
//\r
EfiVarStoreList = ReallocatePool (EfiVarStoreMaxNum * sizeof (UINTN), (EfiVarStoreMaxNum + BASE_NUMBER) * sizeof (UINTN), EfiVarStoreList);\r
+ if (EfiVarStoreList == NULL) {\r
+ goto Done;\r
+ }\r
EfiVarStoreMaxNum = EfiVarStoreMaxNum + BASE_NUMBER;\r
}\r
IfrEfiVarStore = (EFI_IFR_VARSTORE_EFI *) IfrOpHdr;\r
// Convert VarStore Name from ASCII string to Unicode string.\r
//\r
EfiVarStoreList [EfiVarStoreNumber] = AllocatePool (IfrEfiVarStore->Header.Length + AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name));\r
+ if (EfiVarStoreList [EfiVarStoreNumber] == NULL) {\r
+ break;\r
+ }\r
CopyMem (EfiVarStoreList [EfiVarStoreNumber], IfrEfiVarStore, IfrEfiVarStore->Header.Length);\r
AsciiStrToUnicodeStrS ((CHAR8 *)IfrEfiVarStore->Name, (CHAR16 *) &(EfiVarStoreList [EfiVarStoreNumber]->Name[0]), AsciiStrSize ((CHAR8 *)IfrEfiVarStore->Name) * sizeof (CHAR16));\r
Status = FindQuestionDefaultSetting (EFI_HII_DEFAULT_CLASS_STANDARD, EfiVarStoreList[EfiVarStoreNumber], &VarStoreQuestionHeader, NULL, IfrEfiVarStore->Size, FALSE);\r
// Reallocate DefaultIdNumber\r
//\r
DefaultIdList = ReallocatePool (DefaultIdMaxNum * sizeof (UINT16), (DefaultIdMaxNum + BASE_NUMBER) * sizeof (UINT16), DefaultIdList);\r
+ if (DefaultIdList == NULL) {\r
+ goto Done;\r
+ }\r
DefaultIdMaxNum = DefaultIdMaxNum + BASE_NUMBER;\r
}\r
DefaultIdList[DefaultIdNumber ++] = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultId;\r
}\r
\r
Done:\r
- for (Index = 0; Index < EfiVarStoreNumber; Index ++) {\r
- FreePool (EfiVarStoreList [Index]);\r
+ if (EfiVarStoreList != NULL) {\r
+ for (Index = 0; Index < EfiVarStoreNumber; Index ++) {\r
+ FreePool (EfiVarStoreList [Index]);\r
+ }\r
}\r
return;\r
}\r