mirror of https://github.com/acidanthera/audk.git
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:
parent
45b57c1268
commit
980af1eb0b
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue