From: Maxime Larocque Date: Fri, 28 Sep 2012 05:00:13 +0000 (+0000) Subject: printenv: Correct out-of-memory condition check. X-Git-Tag: v2013.04~7 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=22a4a6c5c2ea4c5998b98e6358b351848f2b765f;p=oweals%2Fu-boot.git printenv: Correct out-of-memory condition check. In common/cmd_nvedit.c, en env_print(), the wrong type is used for len. hexport_r() returns -1 on error (like OOM), which is converted to 0xffffffff when put in an unsigned. Said value is obviously bigger then 0, and as a result an uninitialized string is then displayed. Other usages of hexport_r() in the code correctly uses ssize_t to keep its return value. Signed-off-by: Maxime Larocque --- diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index afa128ece2..68b0f4f6d8 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -96,7 +96,7 @@ int get_env_id(void) static int env_print(char *name, int flag) { char *res = NULL; - size_t len; + ssize_t len; if (name) { /* print a single name */ ENTRY e, *ep; @@ -120,6 +120,7 @@ static int env_print(char *name, int flag) } /* should never happen */ + printf("## Error: cannot export environment\n"); return 0; }