mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 12:13:00 -04:00
env_nand: zero-initialize variable nand_erase_options
Commit 30486322 (nand erase: .spread, .part, .chip subcommands) added a new field to struct nand_erase_options, but forgot to update common/env_nand.c. Depending on the stack state and bad block distribution, saveenv() can thus erase more than CONFIG_ENV_RANGE bytes which may corrupt the following NAND sectors/partitions. Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch> Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
parent
5d1ee00b1f
commit
3b250ffb41
@ -193,10 +193,8 @@ int saveenv(void)
|
||||
int ret = 0;
|
||||
nand_erase_options_t nand_erase_options;
|
||||
|
||||
memset(&nand_erase_options, 0, sizeof(nand_erase_options));
|
||||
nand_erase_options.length = CONFIG_ENV_RANGE;
|
||||
nand_erase_options.quiet = 0;
|
||||
nand_erase_options.jffs2 = 0;
|
||||
nand_erase_options.scrub = 0;
|
||||
|
||||
if (CONFIG_ENV_RANGE < CONFIG_ENV_SIZE)
|
||||
return 1;
|
||||
@ -249,10 +247,8 @@ int saveenv(void)
|
||||
char *res;
|
||||
nand_erase_options_t nand_erase_options;
|
||||
|
||||
memset(&nand_erase_options, 0, sizeof(nand_erase_options));
|
||||
nand_erase_options.length = CONFIG_ENV_RANGE;
|
||||
nand_erase_options.quiet = 0;
|
||||
nand_erase_options.jffs2 = 0;
|
||||
nand_erase_options.scrub = 0;
|
||||
nand_erase_options.offset = CONFIG_ENV_OFFSET;
|
||||
|
||||
if (CONFIG_ENV_RANGE < CONFIG_ENV_SIZE)
|
||||
|
Loading…
x
Reference in New Issue
Block a user