summaryrefslogtreecommitdiff
path: root/src/env/__libc_start_main.c
AgeCommit message (Collapse)AuthorLines
2012-10-04TLS (GNU/C11 thread-local storage) support for static-linked programsRich Felker-0/+2
the design for TLS in dynamic-linked programs is mostly complete too, but I have not yet implemented it. cost is nonzero but still low for programs which do not use TLS and/or do not use threads (a few hundred bytes of new code, plus dependency on memcpy). i believe it can be made smaller at some point by merging __init_tls and __init_security into __libc_start_main and avoiding duplicate auxv-parsing code. at the same time, I've also slightly changed the logic pthread_create uses to allocate guard pages to ensure that guard pages are not counted towards commit charge.
2011-08-23security hardening: ensure suid programs have valid stdin/out/errRich Felker-9/+9
this behavior (opening fds 0-2 for a suid program) is explicitly allowed (but not required) by POSIX to protect badly-written suid programs from clobbering files they later open. this commit does add some cost in startup code, but the availability of auxv and the security flag will be useful elsewhere in the future. in particular auxv is needed for static-linked vdso support, which is still waiting to be committed (sorry nik!)
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+26