about summary refs log tree commit diff
path: root/src/env/__environ.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-08-23 09:37:39 -0400
committerRich Felker <dalias@aerifal.cx>2011-08-23 09:37:39 -0400
commitdf0b5a49406763aa4719dfad561a5de8924ecd59 (patch)
tree0d5dc42698f2b710dd27156554b10230ba21256b /src/env/__environ.c
parentc0f344160d22d889460573d003cf349626a38184 (diff)
downloadmusl-df0b5a49406763aa4719dfad561a5de8924ecd59.tar.gz
musl-df0b5a49406763aa4719dfad561a5de8924ecd59.tar.xz
musl-df0b5a49406763aa4719dfad561a5de8924ecd59.zip
security hardening: ensure suid programs have valid stdin/out/err
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!)
Diffstat (limited to 'src/env/__environ.c')
-rw-r--r--src/env/__environ.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/env/__environ.c b/src/env/__environ.c
index d7bd5e50..0a2786fd 100644
--- a/src/env/__environ.c
+++ b/src/env/__environ.c
@@ -1,7 +1,6 @@
 #include "libc.h"
 
 #undef environ
-char **___environ = 0;
-weak_alias(___environ, __environ);
-weak_alias(___environ, _environ);
-weak_alias(___environ, environ);
+char **__environ = 0;
+weak_alias(__environ, _environ);
+weak_alias(__environ, environ);