ShellPkg DmpStore: Make NameSize to be consistent with name buffer

Current code will allocate pool to hold the null char for name buffer
when PrevName==NULL, but the NameSize is still 0.

For this case, GetNextVariableName will return EFI_INVALID_PARAMETER
to follow UEFI 2.7 spec.

UEFI 2.7 spec:
  The VariableNameSize must not be smaller the size of the variable
  name string passed to GetNextVariableName() on input in the
  VariableName buffer.

  EFI_INVALID_PARAMETER
  Null-terminator is not found in the first VariableNameSize bytes of
  the input VariableName buffer.

This patch is to make NameSize to be consistent with name buffer.

Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
This commit is contained in:
Star Zeng 2017-06-22 15:22:33 +08:00
parent 45b57c1268
commit 980af1eb0b
1 changed files with 1 additions and 0 deletions

View File

@ -436,6 +436,7 @@ CascadeProcessVariables (
StrnCatGrow(&FoundVarName, &NameSize, PrevName, 0); StrnCatGrow(&FoundVarName, &NameSize, PrevName, 0);
} else { } else {
FoundVarName = AllocateZeroPool(sizeof(CHAR16)); FoundVarName = AllocateZeroPool(sizeof(CHAR16));
NameSize = sizeof(CHAR16);
} }
Status = gRT->GetNextVariableName (&NameSize, FoundVarName, &FoundVarGuid); Status = gRT->GetNextVariableName (&NameSize, FoundVarName, &FoundVarGuid);