diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c index 4a2dc8d030..e8f4564e64 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c @@ -721,9 +721,14 @@ FindQuestionDefaultSetting ( VariableStorage = NULL; } Entry = AllocatePool (sizeof (VARSTORAGE_DEFAULT_DATA)); - Entry->DefaultId = DefaultId; - Entry->VariableStorage = VariableStorage; - InsertTailList (&gVarStorageList, &Entry->Entry); + if (Entry != NULL) { + Entry->DefaultId = DefaultId; + Entry->VariableStorage = VariableStorage; + InsertTailList (&gVarStorageList, &Entry->Entry); + } else if (VariableStorage != NULL) { + FreePool (VariableStorage); + VariableStorage = NULL; + } } // // The matched variable storage is not found.