mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
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>
This commit is contained in:
parent
30091494eb
commit
477f8116d5
3 changed files with 5 additions and 4 deletions
|
@ -807,7 +807,7 @@ static int do_env_default(cmd_tbl_t *cmdtp, int flag,
|
|||
}
|
||||
if (!all && (argc > 0)) {
|
||||
/* Reset individual variables */
|
||||
set_default_vars(argc, argv);
|
||||
set_default_vars(argc, argv, env_flag);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
5
env/common.c
vendored
5
env/common.c
vendored
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -275,7 +275,7 @@ char *env_get_default(const char *name);
|
|||
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);
|
||||
|
||||
/* Import from binary representation into hash table */
|
||||
int env_import(const char *buf, int check);
|
||||
|
|
Loading…
Reference in a new issue