// Check for -d\r
//\r
if (ShellCommandLineGetFlag(Package, L"-d")){\r
- if (ShellCommandLineGetCount(Package) > 4) {\r
+ if (ShellCommandLineGetCount(Package) < 4) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } else if (ShellCommandLineGetCount(Package) > 4) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
Offset = ShellStrToUintn(ShellCommandLineGetRawValue(Package, 2));\r
Size = ShellStrToUintn(ShellCommandLineGetRawValue(Package, 3));\r
}\r
+ if (Offset == (UINTN)-1 || Size == (UINTN)-1) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellDebug1HiiHandle, L"-d");\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ }\r
}\r
\r
//\r
// check for -f\r
//\r
if (ShellCommandLineGetFlag(Package, L"-f") && (WhatToDo == FileTypeNone)){\r
- if (ShellCommandLineGetCount(Package) > 2) {\r
+ if (ShellCommandLineGetCount(Package) < 2) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } else if (ShellCommandLineGetCount(Package) > 2) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
if (ShellStatus == SHELL_SUCCESS && WhatToDo == FileTypeNone) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
- }\r
+ } else if (WhatToDo == FileTypeFileBuffer && ShellGetCurrentDir(NULL) == NULL) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellDebug1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } \r
\r
if (ShellStatus == SHELL_SUCCESS) {\r
//\r