[PATCH] cmd: env: fix unreachable statements

AKASHI Takahiro takahiro.akashi at linaro.org
Fri May 8 07:51:45 CEST 2020


C's switch statement takes an integer value for switching.
As efi_status_t is defined as unsigned long and each error code has
the top bit set, all "cases" cannot be reachable.

Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
Reported-by: Coverity (CID 300335)
---
 cmd/nvedit_efi.c | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/cmd/nvedit_efi.c b/cmd/nvedit_efi.c
index 837e39e02179..84cba0c7324b 100644
--- a/cmd/nvedit_efi.c
+++ b/cmd/nvedit_efi.c
@@ -597,26 +597,18 @@ int do_env_set_efi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	} else {
 		const char *msg;
 
-		switch (ret) {
-		case EFI_NOT_FOUND:
+		if (ret == EFI_NOT_FOUND)
 			msg = " (not found)";
-			break;
-		case EFI_WRITE_PROTECTED:
+		else if (ret == EFI_WRITE_PROTECTED)
 			msg = " (read only)";
-			break;
-		case EFI_INVALID_PARAMETER:
+		else if (ret == EFI_INVALID_PARAMETER)
 			msg = " (invalid parameter)";
-			break;
-		case EFI_SECURITY_VIOLATION:
+		else if (ret == EFI_SECURITY_VIOLATION)
 			msg = " (validation failed)";
-			break;
-		case EFI_OUT_OF_RESOURCES:
+		else if (ret == EFI_OUT_OF_RESOURCES)
 			msg = " (out of memory)";
-			break;
-		default:
+		else
 			msg = "";
-			break;
-		}
 		printf("## Failed to set EFI variable%s\n", msg);
 		ret = CMD_RET_FAILURE;
 	}
-- 
2.25.2



More information about the U-Boot mailing list