[AArch64] Fix out of bound array access regression

Partially revert ea01a4da21
"aarch64: Add hwcap string routines" because _dl_procinfo cannot
be future proof and avoid oob access in _dl_hwcap_string.
This commit is contained in:
Szabolcs Nagy 2017-07-17 09:58:29 +01:00
parent 91ac3a7d84
commit 00d7a37773
2 changed files with 13 additions and 30 deletions

View File

@ -1,3 +1,8 @@
2017-07-18 Szabolcs Nagy <szabolcs.nagy@arm.com>
* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (_dl_procinfo): Revert.
(_dl_hwcap_string): Check range.
2017-07-17 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
[BZ #21707]

View File

@ -25,36 +25,7 @@
#include <sysdep.h>
/* We cannot provide a general printing function. */
static inline int
__attribute__ ((unused))
_dl_procinfo (unsigned int type, unsigned long int word)
{
/* This table should match the information from arch/arm64/kernel/cpuinfo.c
in the kernel sources. */
int i;
/* Fallback to unknown output mechanism. */
if (type == AT_HWCAP2)
return -1;
_dl_printf ("AT_HWCAP: ");
for (i = 0; i < 32; ++i)
if ((word >> i) & 1)
_dl_printf (" %s", GLRO(dl_aarch64_cap_flags)[i]);
_dl_printf ("\n");
return 0;
}
static inline const char *
__attribute__ ((unused))
_dl_hwcap_string (int idx)
{
return GLRO(dl_aarch64_cap_flags)[idx];
};
#define _dl_procinfo(type, word) -1
/* Number of HWCAP bits set. */
#define _DL_HWCAP_COUNT 13
@ -66,6 +37,13 @@ _dl_hwcap_string (int idx)
library search. */
#define HWCAP_IMPORTANT HWCAP_CPUID
static inline const char *
__attribute__ ((unused))
_dl_hwcap_string (int idx)
{
return (unsigned)idx < _DL_HWCAP_COUNT ? GLRO(dl_aarch64_cap_flags)[idx] : "";
};
static inline int
__attribute__ ((unused))
_dl_string_hwcap (const char *str)