summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorPeter Tyser <ptyser@xes-inc.com>2009-10-25 15:12:55 -0500
committerWolfgang Denk <wd@denx.de>2009-10-27 20:58:25 +0100
commitb0fa8e50632a628766db23f5c884ec63f1469552 (patch)
treedd7ceb98ee9fb5fa678153c6187df2e42aefd25f /common
parentecc5500ee487170d8af6ff893fd1e0082380a01a (diff)
downloadu-boot-b0fa8e50632a628766db23f5c884ec63f1469552.tar.gz
u-boot-b0fa8e50632a628766db23f5c884ec63f1469552.tar.xz
u-boot-b0fa8e50632a628766db23f5c884ec63f1469552.zip
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>
Diffstat (limited to 'common')
-rw-r--r--common/cmd_nvedit.c2
1 files changed, 1 insertions, 1 deletions
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);