Mercurial > ecos
diff packages/hal/arm/arch/current/src/redboot_linux_exec.c @ 1688:30d12b1c7bb0
Fix test for valid entry point (loaded data)
| author | gthomas |
|---|---|
| date | Wed, 07 Jul 2004 15:44:47 +0000 |
| parents | 431860e2ee69 |
| children | aaa68fc7d7f9 |
line wrap: on
line diff
--- a/packages/hal/arm/arch/current/src/redboot_linux_exec.c +++ b/packages/hal/arm/arch/current/src/redboot_linux_exec.c @@ -291,6 +291,11 @@ do_exec(int argc, char *argv[]) struct tag *params = (struct tag *)CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS; extern char __tramp_start__[], __tramp_end__[]; + // Check to see if a valid image has been loaded + if (entry_address == (unsigned long)NO_MEMORY) { + diag_printf("Can't execute Linux - invalid entry address\n"); + return; + } // Default physical entry point for Linux is kernel base. entry = (unsigned long)CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS; @@ -316,10 +321,6 @@ do_exec(int argc, char *argv[]) { return; } - if (entry == (unsigned long)NO_MEMORY) { - diag_printf("Can't execute Linux - invalid entry address\n"); - return; - } // Set up parameters to pass to kernel
