diff options
author | Yaniv Levinsky <yaniv.levinsky@compulab.co.il> | 2018-06-24 19:16:55 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-07-19 16:17:58 -0400 |
commit | 477f8116d517798d4d6456d920d57ff2f46d4271 (patch) | |
tree | 794f331d8570273b9b2582e79b79c2cd6642fa64 /env | |
parent | 30091494eba7ddd788f0beaec04a986c3ba4f193 (diff) | |
download | u-boot-477f8116d517798d4d6456d920d57ff2f46d4271.tar.gz |
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')
-rw-r--r-- | env/common.c | 5 |
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); } /* |