diff --git a/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c b/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c index f17dab03b0..1714ebab71 100644 --- a/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c +++ b/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c @@ -977,6 +977,7 @@ VariableCommonInitialize ( ); if (EFI_ERROR (Status)) { + FreePool(mVariableModuleGlobal); return Status; } // diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c index d25fe038aa..597919aea4 100644 --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c @@ -1984,6 +1984,9 @@ VariableCommonInitialize ( NULL, &ReadyToBootEvent ); + } else { + Status = EFI_VOLUME_CORRUPTED; + DEBUG((EFI_D_INFO, "Variable Store header is corrupted\n")); } Done: