| Index: fusl/src/env/__stack_chk_fail.c
|
| diff --git a/fusl/src/env/__stack_chk_fail.c b/fusl/src/env/__stack_chk_fail.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4de82fd9d2f39bd19bf71269b9530eae82552c4e
|
| --- /dev/null
|
| +++ b/fusl/src/env/__stack_chk_fail.c
|
| @@ -0,0 +1,23 @@
|
| +#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);
|
|
|