ShellPkg/IsVolatileEnv: Handle memory allocation failure
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
This commit is contained in:
@ -1129,13 +1129,18 @@ EfiShellCreateFile(
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_STATUS Status;
|
||||
BOOLEAN Volatile;
|
||||
|
||||
//
|
||||
// Is this for an environment variable
|
||||
// do we start with >v
|
||||
//
|
||||
if (StrStr(FileName, L">v") == FileName) {
|
||||
if (!IsVolatileEnv(FileName+2)) {
|
||||
Status = IsVolatileEnv (FileName + 2, &Volatile);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
if (!Volatile) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
*FileHandle = CreateFileInterfaceEnv(FileName+2);
|
||||
@ -1245,6 +1250,7 @@ EfiShellOpenFileByName(
|
||||
{
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_STATUS Status;
|
||||
BOOLEAN Volatile;
|
||||
|
||||
*FileHandle = NULL;
|
||||
|
||||
@ -1304,7 +1310,11 @@ EfiShellOpenFileByName(
|
||||
// do we start with >v
|
||||
//
|
||||
if (StrStr(FileName, L">v") == FileName) {
|
||||
if (!IsVolatileEnv(FileName+2) &&
|
||||
Status = IsVolatileEnv (FileName + 2, &Volatile);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
if (!Volatile &&
|
||||
((OpenMode & EFI_FILE_MODE_WRITE) != 0)) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
Reference in New Issue
Block a user