| #include <string.h> | |
| #include <stdint.h> | |
| #include "pthread_impl.h" | |
| uintptr_t __stack_chk_guard; | |
| void __init_ssp(void *entropy) | |
| { | |
| if (entropy) memcpy(&__stack_chk_guard, entropy, sizeof(uintptr_t)); | |
| else __stack_chk_guard = (uintptr_t)&__stack_chk_guard * 1103515245; | |
| __pthread_self()->CANARY = __stack_chk_guard; | |
| } | |
| void __stack_chk_fail(void) | |
| { | |
| a_crash(); | |
| } | |
| __attribute__((__visibility__("hidden"))) | |
| void __stack_chk_fail_local(void); | |
| weak_alias(__stack_chk_fail, __stack_chk_fail_local); |