aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@sourceware.org>2017-06-09 14:18:11 +0530
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2017-06-09 14:18:12 +0530
commit6c85cc2852367ea2db91ff6a1fc0f6fc0653788d (patch)
tree5835d58f11fdd01019103721d3d1e906879dce9f
parentab70273bb7b0d4b20325560eba1fd3777d7e5f11 (diff)
downloadglibc-6c85cc2852367ea2db91ff6a1fc0f6fc0653788d.zip
glibc-6c85cc2852367ea2db91ff6a1fc0f6fc0653788d.tar.gz
glibc-6c85cc2852367ea2db91ff6a1fc0f6fc0653788d.tar.bz2
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--ChangeLog6
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h6
2 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6c6ff13..006e7ac 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 cdb36d3..04fc6be 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