esp-idf/components/esp_system/stack_check.c

33 wiersze
642 B
C
Czysty Zwykły widok Historia

/*
* SPDX-FileCopyrightText: 2017-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
2021-01-26 03:31:41 +00:00
#include "sdkconfig.h"
#include "esp_system.h"
#include "esp_random.h"
2021-01-26 03:31:41 +00:00
#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();
}
void __stack_chk_fail (void)
{
esp_rom_printf("\r\nStack smashing protect failure!\r\n\r\n");
abort();
}
#endif