esp-idf/components/esp_system/stack_check.c

32 wiersze
636 B
C

/*
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include "esp_system.h"
#include "esp_random.h"
#include "esp_rom_sys.h"
#if CONFIG_COMPILER_STACK_CHECK
#include "esp_log.h"
const static char *TAG = "stack_chk";
void *__stack_chk_guard = NULL;
static void __attribute__((constructor))
__esp_stack_guard_setup(void)
{
ESP_LOGD(TAG, "Intialize random stack guard");
__stack_chk_guard = (void *)esp_random();
}
IRAM_ATTR void __stack_chk_fail(void)
{
esp_system_abort(DRAM_STR("Stack smashing protect failure!"));
}
#endif