The Ifconfig command handler tries to return an EFI_STATUS when the return type 
should be SHELL_STATUS.  RVCT 4 is (correctly) flagging this as an error:

  edk2\ShellPkg\Library\UefiShellNetwork1CommandsLib\Ifconfig.c(1387,10): error 
#188-D: enumerated type mixed with another type

I haven't found a pattern to convert EFI_STATUS to SHELL_STATUS that works well 
- the examples I've seen seem to lump all EFI_STATUS errors into a single shell 
error like "if(EFI_ERROR(Status)) ShellStatus = SHELL_INVALID_PARAMETER" 
resulting in loss of useful information.  I was hoping there would be a generic 
EFI-to-Shell status conversion routine/macro that could help do this.

Here's a crummy temporary patch to convert the return status.

--
f281fca920f1bb33b2c15cb498a8889bbe9ff035
 edk2/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/edk2/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c 
b/edk2/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
index e16d46a..609c535 100644
--- a/edk2/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
+++ b/edk2/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
@@ -1384,5 +1384,9 @@ ON_EXIT:
     IfConfigCleanup (Private);
   }
 
-  return Status;
+  if (EFI_ERROR(Status)) {
+    return SHELL_ABORTED;
+  } else {
+    return SHELL_SUCCESS;
+  }
 }

--

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen < [email protected]>

Eugene
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to