]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg/TftpDynamicCommand: Return proper status
authorVladimir Olovyannikov via edk2-devel <edk2-devel@lists.01.org>
Wed, 23 Jan 2019 18:26:15 +0000 (10:26 -0800)
committerJaben Carsey <jaben.carsey@intel.com>
Fri, 25 Jan 2019 16:06:34 +0000 (08:06 -0800)
Tftp command always returned "SHELL_NOT_FOUND" which is treated as an
error by callers. Add missing line to clean the ShellStatus on
successful operation. If operation has failed, return the error status
if available.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1487

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>
Reviewed-by: Songpeng Li <songpeng.li@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c

index ba753a279b00747ed342a95d27a8a111be30e270..88e3988a554e204326e6b5fd9a106b70fa66894e 100644 (file)
@@ -548,6 +548,8 @@ RunTftp (
       goto NextHandle;\r
     }\r
 \r
+    ShellStatus = SHELL_SUCCESS;\r
+\r
     NextHandle:\r
 \r
     CloseProtocolAndDestroyServiceChild (\r
@@ -575,6 +577,10 @@ RunTftp (
     FreePool (Handles);\r
   }\r
 \r
+  if ((ShellStatus != SHELL_SUCCESS) && (EFI_ERROR(Status))) {\r
+    ShellStatus = Status & ~MAX_BIT;\r
+  }\r
+\r
   return ShellStatus;\r
 }\r
 \r