From 87a738962e57429250fdcea7e61af6df92147a31 Mon Sep 17 00:00:00 2001 From: Guillaume Souchere Date: Tue, 6 Dec 2022 09:23:52 +0100 Subject: [PATCH] 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 --- components/esp_system/stack_check.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/components/esp_system/stack_check.c b/components/esp_system/stack_check.c index f7ae33139363..89de27b3d892 100644 --- a/components/esp_system/stack_check.c +++ b/components/esp_system/stack_check.c @@ -23,10 +23,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