esp_system: fix placement of __stack_chk_fail from flash to RAM

When stack check is enabled, certain functions (sometimes placed in RAM)
are being decorated with stack guards and a call to __stask_chk_fail() in
case ofr stack corruption. For this reason, __stack_chk_fail() must be
placed in RAM too.

Add stack check config in heap tests on all targets to find eventual flash to RAM
calls due to stack checks when running callgraph_check.py
This commit is contained in:
Guillaume Souchere 2022-12-06 09:23:52 +01:00 committed by BOT
parent dbc4572814
commit 73fca2c851
2 changed files with 3 additions and 4 deletions

View File

@ -31,10 +31,9 @@ __esp_stack_guard_setup (void)
__stack_chk_guard = (void *)esp_random();
}
void __stack_chk_fail (void)
IRAM_ATTR void __stack_chk_fail (void)
{
esp_rom_printf("\r\nStack smashing protect failure!\r\n\r\n");
abort();
esp_system_abort(DRAM_STR("Stack smashing protect failure!"));
}
#endif

View File

@ -111,7 +111,7 @@ class Reference(object):
class IgnorePair():
def __init__(self, pair) -> None: # type: (str)
def __init__(self, pair): # type: (str) -> None
self.symbol, self.function_call = pair.split('/')