UINTN LoopVar2;\r
CHAR16 *DevPathString;\r
VOID *DevPath;\r
+ UINTN Errors;\r
\r
if (OrderCount == 0) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN(STR_BCFG_NONE), gShellBcfgHiiHandle, L"bcfg"); \r
return (SHELL_SUCCESS);\r
}\r
\r
+ Errors = 0;\r
+\r
for (LoopVar = 0 ; LoopVar < OrderCount ; LoopVar++) {\r
Buffer = NULL;\r
BufferSize = 0;\r
\r
if (EFI_ERROR(Status) || Buffer == NULL) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_READ_FAIL), gShellBcfgHiiHandle, L"bcfg", VariableName); \r
- return (SHELL_INVALID_PARAMETER);\r
+ ++Errors;\r
+ goto Cleanup;\r
}\r
\r
if ((*(UINT16*)(Buffer+4)) != 0) {\r
L"\r\n");\r
}\r
\r
+Cleanup:\r
if (Buffer != NULL) {\r
FreePool(Buffer);\r
}\r
FreePool(DevPathString);\r
}\r
}\r
- return (SHELL_SUCCESS);\r
+ return (Errors > 0) ? SHELL_INVALID_PARAMETER : SHELL_SUCCESS;\r
}\r
\r
/**\r