From: Joe Hershberger <joe.hershberger@ni.com>
Date: Mon, 15 Oct 2012 15:29:24 +0000 (+0000)
Subject: tools/env: Fix variable delete operation
X-Git-Tag: v2025.01-rc5-pxa1908~16963
X-Git-Url: http://git.dujemihanovic.xyz/%22http:/kyber.dk/phpMyBuilder/static/%7B%7B%20%28.OutputFormats.Get?a=commitdiff_plain;h=ce2f5800177c36451da44345f7ab408df240ff82;p=u-boot.git

tools/env: Fix variable delete operation

Fix crash introduced by a073d63a36524453a817ab029fad5b188f46127e
when attempting to delete a variable.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
---

diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index ab8c15d30e..97328bb3a8 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -494,6 +494,8 @@ int fw_setenv(int argc, char *argv[])
 		char *val = argv[i];
 		size_t val_len = strlen(val);
 
+		if (value)
+			value[len - 1] = ' ';
 		value = realloc(value, len + val_len + 1);
 		if (!value) {
 			fprintf(stderr,
@@ -504,9 +506,8 @@ int fw_setenv(int argc, char *argv[])
 
 		memcpy(value + len, val, val_len);
 		len += val_len;
-		value[len++] = ' ';
+		value[len++] = '\0';
 	}
-	value[len - 1] = '\0';
 
 	fw_env_write(name, value);