diff --git a/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c b/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c index b49b743972..d55f598dc0 100644 --- a/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c +++ b/MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c @@ -1956,7 +1956,7 @@ VariableCommonInitialize ( while (i < read_cmd.bufsize) { // assume native endian UINT32 keysz = ((UINT32 *)(buf + i))[0]; - if (keysz == 0xffffffff) + if (keysz == 0 || keysz == 0xffffffff) break; // no more entries UINTN valsz = ((UINT32 *)(buf + i))[1];