github.com/afumu/libc@v0.0.6/musl/src/env/__stack_chk_fail.c (about)

     1  #include <string.h>
     2  #include <stdint.h>
     3  #include "pthread_impl.h"
     4  
     5  uintptr_t __stack_chk_guard;
     6  
     7  void __init_ssp(void *entropy)
     8  {
     9  	if (entropy) memcpy(&__stack_chk_guard, entropy, sizeof(uintptr_t));
    10  	else __stack_chk_guard = (uintptr_t)&__stack_chk_guard * 1103515245;
    11  
    12  	__pthread_self()->CANARY = __stack_chk_guard;
    13  }
    14  
    15  void __stack_chk_fail(void)
    16  {
    17  	a_crash();
    18  }
    19  
    20  hidden void __stack_chk_fail_local(void);
    21  
    22  weak_alias(__stack_chk_fail, __stack_chk_fail_local);