diff options
author | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2017-06-09 14:18:11 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@sourceware.org> | 2017-06-09 14:18:12 +0530 |
commit | 6c85cc2852367ea2db91ff6a1fc0f6fc0653788d (patch) | |
tree | 5835d58f11fdd01019103721d3d1e906879dce9f | |
parent | ab70273bb7b0d4b20325560eba1fd3777d7e5f11 (diff) | |
download | glibc-6c85cc2852367ea2db91ff6a1fc0f6fc0653788d.tar.gz glibc-6c85cc2852367ea2db91ff6a1fc0f6fc0653788d.tar.xz glibc-6c85cc2852367ea2db91ff6a1fc0f6fc0653788d.zip |
aarch64: Fix undefined behavior in _dl_procinfo
1 << 31 is undefined, so replace it with a cleaner check. Also remove magic numbers in comments. * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h: Remove mention of magic numbers in comments. (_dl_procinfo): Fix undefined behavior
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 6c6ff131db..006e7ac28e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-06-09 Siddhesh Poyarekar <siddhesh@sourceware.org> + + * sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h: Remove + mention of magic numbers in comments. + (_dl_procinfo): Fix undefined behavior + 2017-06-08 Joseph Myers <joseph@codesourcery.com> * conform/data/sys/wait.h-data (WIFCONTINUED): Do not expect for diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h index cdb36d3316..04fc6be0a3 100644 --- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h +++ b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h @@ -40,7 +40,7 @@ _dl_procinfo (unsigned int type, unsigned long int word) _dl_printf ("AT_HWCAP: "); for (i = 0; i < 32; ++i) - if (word & (1 << i)) + if ((word >> i) & 1) _dl_printf (" %s", GLRO(dl_aarch64_cap_flags)[i]); _dl_printf ("\n"); @@ -56,10 +56,10 @@ _dl_hwcap_string (int idx) }; -/* 13 HWCAP bits set. */ +/* Number of HWCAP bits set. */ #define _DL_HWCAP_COUNT 13 -/* Low 13 bits are allocated in HWCAP. */ +/* Offset of the last bit allocated in HWCAP. */ #define _DL_HWCAP_LAST 12 /* HWCAP_CPUID should be available by default to influence IFUNC as well as |