From b0fa8e50632a628766db23f5c884ec63f1469552 Mon Sep 17 00:00:00 2001
From: Peter Tyser <ptyser@xes-inc.com>
Date: Sun, 25 Oct 2009 15:12:55 -0500
Subject: [PATCH] setenv(): Delete 0-length environment variables

Previously setenv() would only delete an environment variable if it
was passed a NULL string pointer as a value.  It should also delete an
environment variable when it encounters a valid string pointer of
0-length.

This change/fix is generally useful and is necessary for the upcoming
"editenv" command.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 common/cmd_nvedit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
index 9f8d531959..725e573ddf 100644
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -400,7 +400,7 @@ int _do_setenv (int flag, int argc, char *argv[])
 int setenv (char *varname, char *varvalue)
 {
 	char *argv[4] = { "setenv", varname, varvalue, NULL };
-	if (varvalue == NULL)
+	if ((varvalue == NULL) || (varvalue[0] == '\0'))
 		return _do_setenv (0, 2, argv);
 	else
 		return _do_setenv (0, 3, argv);
-- 
2.39.5