/** @file\r
Main file for bcfg shell Debug1 function.\r
\r
- Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
//\r
// Allocate new struct and discard old optional data.\r
//\r
+ ASSERT (OriginalData != NULL);\r
OriginalOptionDataSize = sizeof(UINT32) + sizeof(UINT16) + StrSize(((CHAR16*)(OriginalData + sizeof(UINT32) + sizeof(UINT16))));\r
OriginalOptionDataSize += (*(UINT16*)(OriginalData + sizeof(UINT32)));\r
OriginalOptionDataSize -= OriginalSize;\r
/**\r
This function will get a CRC for a boot option.\r
\r
- @param[in, out] Crc The CRC value to return.\r
- @param[in] Index The boot option index to CRC.\r
+ @param[in, out] Crc The CRC value to return.\r
+ @param[in] BootIndex The boot option index to CRC.\r
\r
@retval EFI_SUCCESS The CRC was sucessfully returned.\r
@retval other A error occured.\r
EFI_STATUS Status;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
EFI_DEVICE_PATH_PROTOCOL *FilePath;\r
- EFI_DEVICE_PATH_PROTOCOL *FileNode;\r
+ /* EFI_DEVICE_PATH_PROTOCOL *FileNode; */\r
CHAR16 *Str;\r
UINT8 *TempByteBuffer;\r
UINT8 *TempByteStart;\r
\r
Str = NULL;\r
FilePath = NULL;\r
- FileNode = NULL;\r
+ /* FileNode = NULL; */\r
FileList = NULL;\r
Handles = NULL;\r
ShellStatus = SHELL_SUCCESS;\r
\r
CopyMem (TempByteBuffer, Desc, DescSize);\r
TempByteBuffer += DescSize;\r
+ ASSERT (FilePath != NULL);\r
CopyMem (TempByteBuffer, FilePath, FilePathSize);\r
\r
UnicodeSPrint (OptionStr, sizeof(OptionStr), L"%s%04x", Target == BcfgTargetBootOrder?L"Boot":L"Driver", TargetLocation);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
FileName = StrnCatGrow(&FileName, NULL, Walker+1, 0);\r
+ if (FileName == NULL) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_OUT_OF_RESOURCES;\r
+ return (ShellStatus);\r
+ }\r
Temp2 = StrStr(FileName, L"\"");\r
ASSERT(Temp2 != NULL);\r
Temp2[0] = CHAR_NULL;\r
ShellStatus = SHELL_OUT_OF_RESOURCES;\r
}\r
}\r
- for (LoopCounter = 0 ; ShellStatus == SHELL_SUCCESS && LoopCounter < KeyOptionBuffer->KeyData.Options.InputKeyCount; LoopCounter++) {\r
+ for (LoopCounter = 0 ; ShellStatus == SHELL_SUCCESS && LoopCounter < NewKeyOption.KeyData.Options.InputKeyCount; LoopCounter++) {\r
//\r
// ScanCode\r
//\r
//\r
// Open the file and populate the data buffer.\r
//\r
- ShellStatus = ShellOpenFileByName(\r
+ Status = ShellOpenFileByName(\r
FileName,\r
&FileHandle,\r
EFI_FILE_MODE_READ,\r
0);\r
- if (ShellStatus == SHELL_SUCCESS) {\r
- ShellStatus = ShellGetFileSize(FileHandle, &Intermediate);\r
+ if (!EFI_ERROR(Status)) {\r
+ Status = ShellGetFileSize(FileHandle, &Intermediate);\r
}\r
Data = AllocateZeroPool((UINTN)Intermediate);\r
if (Data == NULL) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_MEM), gShellDebug1HiiHandle);\r
ShellStatus = SHELL_OUT_OF_RESOURCES;\r
}\r
- if (ShellStatus == SHELL_SUCCESS) {\r
- ShellStatus = ShellReadFile(FileHandle, &((UINTN)Intermediate), Data);\r
+ if (!EFI_ERROR(Status)) {\r
+ Status = ShellReadFile(FileHandle, (UINTN *)&Intermediate, Data);\r
}\r
} else {\r
Intermediate = StrSize(Data);\r
}\r
\r
- if (ShellStatus == SHELL_SUCCESS && Data != NULL) {\r
+ if (!EFI_ERROR(Status) && ShellStatus == SHELL_SUCCESS && Data != NULL) {\r
Status = UpdateOptionalDataDebug1(CurrentOrder[OptionIndex], (UINTN)Intermediate, (UINT8*)Data, Target);\r
if (EFI_ERROR(Status)) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_SET_VAR_FAIL), gShellDebug1HiiHandle, VariableName, Status);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} \r
}\r
+ if (EFI_ERROR(Status) && ShellStatus == SHELL_SUCCESS) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_SET_VAR_FAIL), gShellDebug1HiiHandle, VariableName, Status);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } \r
}\r
\r
SHELL_FREE_NON_NULL(Data);\r
if ((*(UINT16*)(Buffer+4)) != 0) {\r
DevPath = AllocateZeroPool(*(UINT16*)(Buffer+4));\r
CopyMem(DevPath, Buffer+6+StrSize((CHAR16*)(Buffer+6)), *(UINT16*)(Buffer+4));\r
- DevPathString = gDevPathToText->ConvertDevicePathToText(DevPath, TRUE, FALSE);\r
+ DevPathString = ConvertDevicePathToText(DevPath, TRUE, FALSE);\r
} else {\r
DevPath = NULL;\r
DevPathString = NULL;\r