11bb92983SJerome Forissier // SPDX-License-Identifier: BSD-2-Clause 2b0104773SPascal Brand /* 3b0104773SPascal Brand * Copyright (c) 2014, STMicroelectronics International N.V. 4b0104773SPascal Brand */ 5c211d0a4SVolodymyr Babchuk #include <compiler.h> 6*45507d10SKhoa Hoang #include <trace.h> 7*45507d10SKhoa Hoang 8*45507d10SKhoa Hoang #if defined(__KERNEL__) 9*45507d10SKhoa Hoang # include <kernel/panic.h> 10*45507d10SKhoa Hoang # define PANIC() panic() 11*45507d10SKhoa Hoang #elif defined(__LDELF__) 12*45507d10SKhoa Hoang # include <ldelf_syscalls.h> 13*45507d10SKhoa Hoang # define PANIC() _ldelf_panic(2) 14*45507d10SKhoa Hoang #else 15*45507d10SKhoa Hoang # include <utee_syscalls.h> 16*45507d10SKhoa Hoang # define PANIC() _utee_panic(TEE_ERROR_OVERFLOW) 17*45507d10SKhoa Hoang #endif 18*45507d10SKhoa Hoang 19c211d0a4SVolodymyr Babchuk void *__stack_chk_guard __nex_data = (void *)0x00000aff; 20b0104773SPascal Brand 21b0104773SPascal Brand void __attribute__((noreturn)) __stack_chk_fail(void); 22b0104773SPascal Brand __stack_chk_fail(void)23b0104773SPascal Brandvoid __stack_chk_fail(void) 24b0104773SPascal Brand { 25*45507d10SKhoa Hoang EMSG_RAW("stack smashing detected"); 26b0104773SPascal Brand while (1) 27*45507d10SKhoa Hoang PANIC(); 28b0104773SPascal Brand } 29b0104773SPascal Brand 30