[PATCH] cli_hush.c: remove broken sanity check

Rasmus Villemoes rasmus.villemoes at prevas.dk
Wed Oct 7 09:36:03 CEST 2020


This code is intended do prevent one from setting a shell variable abc
by doing

  abc=123

if an environment variable named abc already exists. However, the
check is broken, since the env_get is done before the split on =, so
we look up whether an environment variable "abc=123" exists, which is
obviously never the case.

One could move the code to below the split on =, but instead, just
remove it, saving a little .text: The check has never worked as
intended (it goes all the way back to the initial git commit), and it
would anyway not guard against one first setting the shell variable,
then doing 'env set abc xyz'.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
---
 common/cli_hush.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/common/cli_hush.c b/common/cli_hush.c
index 5b1f119074..66995c255b 100644
--- a/common/cli_hush.c
+++ b/common/cli_hush.c
@@ -2170,14 +2170,6 @@ int set_local_var(const char *s, int flg_export)
 
 	name=strdup(s);
 
-#ifdef __U_BOOT__
-	if (env_get(name) != NULL) {
-		printf ("ERROR: "
-				"There is a global environment variable with the same name.\n");
-		free(name);
-		return -1;
-	}
-#endif
 	/* Assume when we enter this function that we are already in
 	 * NAME=VALUE format.  So the first order of business is to
 	 * split 's' on the '=' into 'name' and 'value' */
-- 
2.23.0



More information about the U-Boot mailing list