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