summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-08-16 07:46:42 -0400
committerRich Felker <dalias@aerifal.cx>2011-08-16 07:46:42 -0400
commita045883365ccb404a63b7c56a42daf0851e579fa (patch)
treebcfda1c0d831294c040b07a44c652f279bf62fa5
parent623753ad64a3625b010c10c00c45262d2eec2495 (diff)
downloadmusl-a045883365ccb404a63b7c56a42daf0851e579fa.tar.gz
honor AT_SECURE aux vector flag
-rw-r--r--src/ldso/dynlink.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 3fafb181..390f50ba 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -60,7 +60,7 @@ static int runtime;
static jmp_buf rtld_fail;
static pthread_rwlock_t lock;
-#define AUX_CNT 15
+#define AUX_CNT 24
#define DYN_CNT 34
static void decode_vec(size_t *v, size_t *a, size_t cnt)
@@ -491,7 +491,7 @@ void *__dynlink(int argc, char **argv, size_t *got)
/* Only trust user/env if kernel says we're not suid/sgid */
if ((aux[0]&0x7800)!=0x7800 || aux[AT_UID]!=aux[AT_EUID]
- || aux[AT_GID]!=aux[AT_EGID]) {
+ || aux[AT_GID]!=aux[AT_EGID] || aux[AT_SECURE]) {
env_path = 0;
env_preload = 0;
}