diff options
author | Zhichao Gao <zhichao.gao@intel.com> | 2019-11-29 16:51:45 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2019-12-19 05:11:00 +0000 |
commit | 95bb203861c5e19b7b7d5d9318e16d82108f2134 (patch) | |
tree | 294b050a5539002f1b201d972fa58b1abdf2f850 /ShellPkg | |
parent | c7a0aca0ed0e9b51efe0c437ff77b30cf1457f8a (diff) | |
download | edk2-95bb203861c5e19b7b7d5d9318e16d82108f2134.tar.gz edk2-95bb203861c5e19b7b7d5d9318e16d82108f2134.tar.bz2 edk2-95bb203861c5e19b7b7d5d9318e16d82108f2134.zip |
ShellPkg/ShellProtocol: Return error code while fail parsing cmd-line
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2395
Errors happened in the arguments parsing is not a critical error.
And it would miss the error status code in the release version of shell.
So replace the ASSERT with returning error status code while fail
parsing command-line in UpdateArgcArgv.
Cc: Ray Ni <ray.ni@intel.com>
Cc: Linson Augustine <linson.augustine@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Diffstat (limited to 'ShellPkg')
-rw-r--r-- | ShellPkg/Application/Shell/ShellProtocol.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ShellPkg/Application/Shell/ShellProtocol.c b/ShellPkg/Application/Shell/ShellProtocol.c index 5e529b6568..f0362a42d8 100644 --- a/ShellPkg/Application/Shell/ShellProtocol.c +++ b/ShellPkg/Application/Shell/ShellProtocol.c @@ -1497,7 +1497,10 @@ InternalShellExecuteDevicePath( ShellParamsProtocol.StdOut = ShellInfoObject.NewShellParametersProtocol->StdOut;
ShellParamsProtocol.StdErr = ShellInfoObject.NewShellParametersProtocol->StdErr;
Status = UpdateArgcArgv(&ShellParamsProtocol, NewCmdLine, Efi_Application, NULL, NULL);
- ASSERT_EFI_ERROR(Status);
+ if (EFI_ERROR (Status)) {
+ goto UnloadImage;
+ }
+
//
// Replace Argv[0] with the full path of the binary we're executing:
// If the command line was "foo", the binary might be called "foo.efi".
|