overhaul SSP support to use a real canary
authorRich Felker <dalias@aerifal.cx>
Fri, 4 May 2012 00:42:45 +0000 (20:42 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 4 May 2012 00:42:45 +0000 (20:42 -0400)
commit58aa5f45ed3282751ae118c107ff008d4df765dc
tree94859368fee26181f59f2b98911f1c46d146d25b
parente765239f334d670e1b68289a2fcaa6b82a3b9666
overhaul SSP support to use a real canary

pthread structure has been adjusted to match the glibc/GCC abi for
where the canary is stored on i386 and x86_64. it will need variants
for other archs to provide the added security of the canary's entropy,
but even without that it still works as well as the old "minimal" ssp
support. eventually such changes will be made anyway, since they are
also needed for GCC/C11 thread-local storage support (not yet
implemented).

care is taken not to attempt initializing the thread pointer unless
the program actually uses SSP (by reference to __stack_chk_fail).
src/env/__init_security.c
src/env/__stack_chk_fail.c
src/env/__stack_chk_guard.c [deleted file]
src/internal/pthread_impl.h
src/ldso/dynlink.c
src/thread/pthread_create.c