avr32: Do stricter stack checking in the exception handler
Don't do a stack dump if the stack pointer is outside the memory area reserved for stack. Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
This commit is contained in:
parent
caf83ea888
commit
95107b7c02
@ -111,7 +111,8 @@ void do_unknown_exception(unsigned int ecr, struct pt_regs *regs)
|
|||||||
printf("CPU Mode: %s\n", cpu_modes[mode]);
|
printf("CPU Mode: %s\n", cpu_modes[mode]);
|
||||||
|
|
||||||
/* Avoid exception loops */
|
/* Avoid exception loops */
|
||||||
if (regs->sp < CFG_SDRAM_BASE || regs->sp >= gd->stack_end)
|
if (regs->sp < (gd->stack_end - CONFIG_STACKSIZE)
|
||||||
|
|| regs->sp >= gd->stack_end)
|
||||||
printf("\nStack pointer seems bogus, won't do stack dump\n");
|
printf("\nStack pointer seems bogus, won't do stack dump\n");
|
||||||
else
|
else
|
||||||
dump_mem("\nStack: ", regs->sp, gd->stack_end);
|
dump_mem("\nStack: ", regs->sp, gd->stack_end);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user