summary refs log tree commit diff
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.gz
glibc-c801e76565467d2819ab0839804463f635d78b25.tar.xz
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.  */