summaryrefslogtreecommitdiff
path: root/env/common.c
diff options
context:
space:
mode:
authorYaniv Levinsky <yaniv.levinsky@compulab.co.il>2018-06-24 19:16:55 +0300
committerTom Rini <trini@konsulko.com>2018-07-19 16:17:58 -0400
commit477f8116d517798d4d6456d920d57ff2f46d4271 (patch)
tree794f331d8570273b9b2582e79b79c2cd6642fa64 /env/common.c
parent30091494eba7ddd788f0beaec04a986c3ba4f193 (diff)
cmd: nvedit: propagate envflag to set_default_vars
The env_flag in do_env_default() doesn't get propagated and therefore gets ignored by himport_r(). This breaks to ability to "forcibly" reset variables to their default values using the environment command. Scenario example of the problem: # setenv kernel uImage # setenv .flags kernel:so # env default -f kernel ## Error: Can't overwrite "kernel" himport_r: can't insert "kernel=zImage" into hash table Change the call path so it will pass the flag correctly. Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Diffstat (limited to 'env/common.c')
-rw-r--r--env/common.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/env/common.c b/env/common.c
index dc8a14f519..6cf5eddaf6 100644
--- a/env/common.c
+++ b/env/common.c
@@ -91,15 +91,16 @@ void set_default_env(const char *s)
/* [re]set individual variables to their value in the default environment */
-int set_default_vars(int nvars, char * const vars[])
+int set_default_vars(int nvars, char * const vars[], int flags)
{
/*
* Special use-case: import from default environment
* (and use \0 as a separator)
*/
+ flags |= H_NOCLEAR | H_INTERACTIVE;
return himport_r(&env_htab, (const char *)default_environment,
sizeof(default_environment), '\0',
- H_NOCLEAR | H_INTERACTIVE, 0, nvars, vars);
+ flags, 0, nvars, vars);
}
/*