Fix array overflow with fw_setenv on uninitialised environment

Patch by Murray Jensen, 15 Jul 2005
This commit is contained in:
Wolfgang Denk 2006-03-12 23:27:46 +01:00
parent 84c960ce6d
commit f07217c9e2
2 changed files with 5 additions and 4 deletions

View File

@ -2,6 +2,9 @@
Changes since U-Boot 1.1.4:
======================================================================
* Fix array overflow with fw_setenv on uninitialised environment
Patch by Murray Jensen, 15 Jul 2005
* Add support for EmbeddedPlanet EP88x boards
Patch by Yuli Barcohen, 13 Jul 2005

6
tools/env/fw_env.c vendored
View File

@ -614,8 +614,7 @@ static int env_init (void)
if (!crc1_ok) {
fprintf (stderr,
"Warning: Bad CRC, using default environment\n");
environment.data = default_environment;
free (addr1);
memcpy(environment.data, default_environment, sizeof default_environment);
}
} else {
flag1 = environment.flags;
@ -652,9 +651,8 @@ static int env_init (void)
} else if (!crc1_ok && !crc2_ok) {
fprintf (stderr,
"Warning: Bad CRC, using default environment\n");
environment.data = default_environment;
memcpy(environment.data, default_environment, sizeof default_environment);
curdev = 0;
free (addr2);
free (addr1);
} else if (flag1 == active_flag && flag2 == obsolete_flag) {
environment.data = addr1;