mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
Linux: Remove HAVE_AUX_SECURE, HAVE_AUX_XID, HAVE_AUX_PAGESIZE
They are always defined. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
91c0a47ffb
commit
b9c3d3382f
@ -85,21 +85,6 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
ElfW(Word) phnum = 0;
|
ElfW(Word) phnum = 0;
|
||||||
ElfW(Addr) user_entry;
|
ElfW(Addr) user_entry;
|
||||||
ElfW(auxv_t) *av;
|
ElfW(auxv_t) *av;
|
||||||
#ifdef HAVE_AUX_SECURE
|
|
||||||
# define set_seen(tag) (tag) /* Evaluate for the side effects. */
|
|
||||||
# define set_seen_secure() ((void) 0)
|
|
||||||
#else
|
|
||||||
uid_t uid = 0;
|
|
||||||
gid_t gid = 0;
|
|
||||||
unsigned int seen = 0;
|
|
||||||
# define set_seen_secure() (seen = -1)
|
|
||||||
# ifdef HAVE_AUX_XID
|
|
||||||
# define set_seen(tag) (tag) /* Evaluate for the side effects. */
|
|
||||||
# else
|
|
||||||
# define M(type) (1 << (type))
|
|
||||||
# define set_seen(tag) seen |= M ((tag)->a_type)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#ifdef NEED_DL_SYSINFO
|
#ifdef NEED_DL_SYSINFO
|
||||||
uintptr_t new_sysinfo = 0;
|
uintptr_t new_sysinfo = 0;
|
||||||
#endif
|
#endif
|
||||||
@ -116,7 +101,7 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
"CONSTANT_MINSIGSTKSZ is constant");
|
"CONSTANT_MINSIGSTKSZ is constant");
|
||||||
GLRO(dl_minsigstacksize) = CONSTANT_MINSIGSTKSZ;
|
GLRO(dl_minsigstacksize) = CONSTANT_MINSIGSTKSZ;
|
||||||
|
|
||||||
for (av = GLRO(dl_auxv); av->a_type != AT_NULL; set_seen (av++))
|
for (av = GLRO(dl_auxv); av->a_type != AT_NULL; av++)
|
||||||
switch (av->a_type)
|
switch (av->a_type)
|
||||||
{
|
{
|
||||||
case AT_PHDR:
|
case AT_PHDR:
|
||||||
@ -131,20 +116,7 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
case AT_ENTRY:
|
case AT_ENTRY:
|
||||||
user_entry = av->a_un.a_val;
|
user_entry = av->a_un.a_val;
|
||||||
break;
|
break;
|
||||||
#ifndef HAVE_AUX_SECURE
|
|
||||||
case AT_UID:
|
|
||||||
case AT_EUID:
|
|
||||||
uid ^= av->a_un.a_val;
|
|
||||||
break;
|
|
||||||
case AT_GID:
|
|
||||||
case AT_EGID:
|
|
||||||
gid ^= av->a_un.a_val;
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case AT_SECURE:
|
case AT_SECURE:
|
||||||
#ifndef HAVE_AUX_SECURE
|
|
||||||
seen = -1;
|
|
||||||
#endif
|
|
||||||
__libc_enable_secure = av->a_un.a_val;
|
__libc_enable_secure = av->a_un.a_val;
|
||||||
break;
|
break;
|
||||||
case AT_PLATFORM:
|
case AT_PLATFORM:
|
||||||
@ -183,31 +155,6 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
|
|
||||||
dl_hwcap_check ();
|
dl_hwcap_check ();
|
||||||
|
|
||||||
#ifndef HAVE_AUX_SECURE
|
|
||||||
if (seen != -1)
|
|
||||||
{
|
|
||||||
/* Fill in the values we have not gotten from the kernel through the
|
|
||||||
auxiliary vector. */
|
|
||||||
# ifndef HAVE_AUX_XID
|
|
||||||
# define SEE(UID, var, uid) \
|
|
||||||
if ((seen & M (AT_##UID)) == 0) var ^= __get##uid ()
|
|
||||||
SEE (UID, uid, uid);
|
|
||||||
SEE (EUID, uid, euid);
|
|
||||||
SEE (GID, gid, gid);
|
|
||||||
SEE (EGID, gid, egid);
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* If one of the two pairs of IDs does not match this is a setuid
|
|
||||||
or setgid run. */
|
|
||||||
__libc_enable_secure = uid | gid;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_AUX_PAGESIZE
|
|
||||||
if (GLRO(dl_pagesize) == 0)
|
|
||||||
GLRO(dl_pagesize) = __getpagesize ();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef NEED_DL_SYSINFO
|
#ifdef NEED_DL_SYSINFO
|
||||||
if (new_sysinfo != 0)
|
if (new_sysinfo != 0)
|
||||||
{
|
{
|
||||||
|
@ -24,16 +24,4 @@
|
|||||||
/* Get the real definitions. */
|
/* Get the real definitions. */
|
||||||
#include_next <ldsodefs.h>
|
#include_next <ldsodefs.h>
|
||||||
|
|
||||||
/* We can assume that the kernel always provides the AT_UID, AT_EUID,
|
|
||||||
AT_GID, and AT_EGID values in the auxiliary vector from 2.4.0 or so on. */
|
|
||||||
#define HAVE_AUX_XID
|
|
||||||
|
|
||||||
/* We can assume that the kernel always provides the AT_SECURE value
|
|
||||||
in the auxiliary vector from 2.5.74 or so on. */
|
|
||||||
#define HAVE_AUX_SECURE
|
|
||||||
|
|
||||||
/* Starting with one of the 2.4.0 pre-releases the Linux kernel passes
|
|
||||||
up the page size information. */
|
|
||||||
#define HAVE_AUX_PAGESIZE
|
|
||||||
|
|
||||||
#endif /* ldsodefs.h */
|
#endif /* ldsodefs.h */
|
||||||
|
Loading…
Reference in New Issue
Block a user