mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-09 23:00:07 +00:00
Fix crash on getauxval call without HAVE_AUX_VECTOR
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro) [!HAVE_AUX_VECTOR]: Do not define _dl_auxv field. * misc/getauxval.c (__getauxval) [!HAVE_AUX_VECTOR]: Do not go through GLRO(dl_auxv) list.
This commit is contained in:
parent
5057feffcc
commit
0cdc5e930a
@ -1,3 +1,10 @@
|
|||||||
|
2016-04-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||||
|
|
||||||
|
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro)
|
||||||
|
[!HAVE_AUX_VECTOR]: Do not define _dl_auxv field.
|
||||||
|
* misc/getauxval.c (__getauxval) [!HAVE_AUX_VECTOR]: Do not go through
|
||||||
|
GLRO(dl_auxv) list.
|
||||||
|
|
||||||
2016-04-09 Nick Alcock <nick.alcock@oracle.com>
|
2016-04-09 Nick Alcock <nick.alcock@oracle.com>
|
||||||
|
|
||||||
* elf/rtld-Rules (rtld-compile-command.c): Add $(rtld-CFLAGS).
|
* elf/rtld-Rules (rtld-compile-command.c): Add $(rtld-CFLAGS).
|
||||||
|
@ -30,9 +30,11 @@ __getauxval (unsigned long int type)
|
|||||||
else if (type == AT_HWCAP2)
|
else if (type == AT_HWCAP2)
|
||||||
return GLRO(dl_hwcap2);
|
return GLRO(dl_hwcap2);
|
||||||
|
|
||||||
|
#ifdef HAVE_AUX_VECTOR
|
||||||
for (p = GLRO(dl_auxv); p->a_type != AT_NULL; p++)
|
for (p = GLRO(dl_auxv); p->a_type != AT_NULL; p++)
|
||||||
if (p->a_type == type)
|
if (p->a_type == type)
|
||||||
return p->a_un.a_val;
|
return p->a_un.a_val;
|
||||||
|
#endif
|
||||||
|
|
||||||
__set_errno (ENOENT);
|
__set_errno (ENOENT);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -509,8 +509,10 @@ struct rtld_global_ro
|
|||||||
/* Mask for important hardware capabilities we honour. */
|
/* Mask for important hardware capabilities we honour. */
|
||||||
EXTERN uint64_t _dl_hwcap_mask;
|
EXTERN uint64_t _dl_hwcap_mask;
|
||||||
|
|
||||||
|
#ifdef HAVE_AUX_VECTOR
|
||||||
/* Pointer to the auxv list supplied to the program at startup. */
|
/* Pointer to the auxv list supplied to the program at startup. */
|
||||||
EXTERN ElfW(auxv_t) *_dl_auxv;
|
EXTERN ElfW(auxv_t) *_dl_auxv;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Get architecture specific definitions. */
|
/* Get architecture specific definitions. */
|
||||||
#define PROCINFO_DECL
|
#define PROCINFO_DECL
|
||||||
|
Loading…
Reference in New Issue
Block a user