From 22a4a6c5c2ea4c5998b98e6358b351848f2b765f Mon Sep 17 00:00:00 2001 From: Maxime Larocque Date: Fri, 28 Sep 2012 05:00:13 +0000 Subject: 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 --- common/cmd_nvedit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'common') 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; } -- cgit v1.2.1