diff --git a/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c b/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c index ba753a279b..88e3988a55 100644 --- a/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c +++ b/ShellPkg/DynamicCommand/TftpDynamicCommand/Tftp.c @@ -548,6 +548,8 @@ RunTftp ( goto NextHandle; } + ShellStatus = SHELL_SUCCESS; + NextHandle: CloseProtocolAndDestroyServiceChild ( @@ -575,6 +577,10 @@ RunTftp ( FreePool (Handles); } + if ((ShellStatus != SHELL_SUCCESS) && (EFI_ERROR(Status))) { + ShellStatus = Status & ~MAX_BIT; + } + return ShellStatus; }