/*
 * SPDX-FileCopyrightText: 2017-2022 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();
}

void __stack_chk_fail (void)
{
    esp_rom_printf("\r\nStack smashing protect failure!\r\n\r\n");
    abort();
}

#endif