Mercurial > ecos
changeset 2329:9279e39bd38d
* src/load.c: Only call valid_address() if
CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS is enabled.
| author | asl |
|---|---|
| date | Thu, 30 Nov 2006 17:03:52 +0000 |
| parents | 9ee188e11ee6 |
| children | 23bf56b48ddc |
| files | packages/redboot/current/ChangeLog packages/redboot/current/cdl/redboot.cdl packages/redboot/current/src/load.c |
| diffstat | 3 files changed, 18 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,3 +1,8 @@ +2006-11-19 Andrew Lunn <lunn@laptop.lunn.ch> + + * src/load.c: Only call valid_address() if + CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS is enabled. + 2006-09-06 Andrew Lunn <andrew.lunn@ascom.ch> * cdl/redboot.cdl: Fix description of CYGSEM_REDBOOT_DISK_IDE.
--- a/packages/redboot/current/cdl/redboot.cdl +++ b/packages/redboot/current/cdl/redboot.cdl @@ -240,10 +240,13 @@ cdl_package CYGPKG_REDBOOT { cdl_option CYGBLD_REDBOOT_LOAD_INTO_FLASH { display "Allow the load-command write into Flash." default_value 0 - active_if CYGPKG_REDBOOT_FLASH + active_if CYGPKG_REDBOOT_FLASH + requires CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS compile flash_load.c description " - Write images direct to Flash via the load command." + Write images direct to Flash via the load command. + We assume anything which is invalid RAM is flash, hence + the requires statement" } cdl_option CYGBLD_BUILD_REDBOOT_WITH_CKSUM { display "Include POSIX checksum command"
--- a/packages/redboot/current/src/load.c +++ b/packages/redboot/current/src/load.c @@ -422,9 +422,11 @@ load_elf_image(getc_t getc, unsigned lon redboot_getc_terminate(true); return 0; } - if (valid_address(addr)) { +#ifdef CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS + if (valid_address(addr)) +#endif *addr++ = ch; - } + #ifdef CYGBLD_REDBOOT_LOAD_INTO_FLASH else { flash_load_write(addr, ch); @@ -567,9 +569,11 @@ load_srec_image(getc_t getc, unsigned lo offset += count; while (count-- > 0) { val = _hex2(getc, 1, &sum); - if (valid_address(addr)) { +#ifdef CYGSEM_REDBOOT_VALIDATE_USER_RAM_LOADS + if (valid_address(addr)) +#endif *addr++ = val; - } + #ifdef CYGBLD_REDBOOT_LOAD_INTO_FLASH else { flash_load_write(addr, val);
