aboutsummaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-06-26 19:54:29 +0000
committerRoland McGrath <roland@gnu.org>2003-06-26 19:54:29 +0000
commitc801e76565467d2819ab0839804463f635d78b25 (patch)
tree6a28ae9f37029e767c292ed0763b5ee758e14fb7 /elf
parent95a305bec37e831bc683cac8f62ca365bdb42d39 (diff)
downloadglibc-c801e76565467d2819ab0839804463f635d78b25.tar
glibc-c801e76565467d2819ab0839804463f635d78b25.tar.gz
glibc-c801e76565467d2819ab0839804463f635d78b25.tar.bz2
glibc-c801e76565467d2819ab0839804463f635d78b25.zip
2003-06-26 Roland McGrath <roland@redhat.com>
* elf/elf.h (AT_SECURE): New macro. * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Grok it, set __libc_enable_secure. (_dl_show_auxv): Add AT_SECURE to name table. * elf/dl-support.c (_dl_aux_init): Grok AT_SECURE, set __libc_enable_secure and __libc_enable_secure_decided. * sysdeps/unix/sysv/linux/ldsodefs.h [__ASSUME_AT_SECURE] (HAVE_AUX_SECURE): Define it. * sysdeps/unix/sysv/linux/kernel-features.h [__LINUX_KERNEL_VERSION >= 132425] (__ASSUME_AT_SECURE): Define it.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-support.c5
-rw-r--r--elf/elf.h4
2 files changed, 8 insertions, 1 deletions
diff --git a/elf/dl-support.c b/elf/dl-support.c
index 0d6ce6a12b..6d83da3328 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -188,6 +188,11 @@ _dl_aux_init (ElfW(auxv_t) *av)
gid ^= av->a_un.a_val;
seen |= 8;
break;
+ case AT_SECURE:
+ seen = -1;
+ __libc_enable_secure = av->a_un.a_val;
+ __libc_enable_secure_decided = 1;
+ break;
}
if (seen == 0xf)
{
diff --git a/elf/elf.h b/elf/elf.h
index 982ce2ca20..a5ac9dbd00 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -945,7 +945,9 @@ typedef struct
/* A special ignored value for PPC, used by the kernel to control the
interpretation of the AUXV. Must be > 16. */
-#define AT_IGNOREPPC 22 /* Entry should be ignored */
+#define AT_IGNOREPPC 22 /* Entry should be ignored. */
+
+#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
/* Pointer to the global system page used for system calls and other
nice things. */