about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--elf/cache.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e109beace..1974243339 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-12-29  Jakub Jelinek  <jakub@redhat.com>
+
+	* elf/cache.c (add_to_cache): Don't loop forever with 1ULL << 63 set
+	in hwcap.
+
 2002-12-28  Ulrich Drepper  <drepper@redhat.com>
 
 	* misc/sys/cdefs.h (__attribute_deprecated__): New #define.
diff --git a/elf/cache.c b/elf/cache.c
index 67874b3c9e..4f72f10491 100644
--- a/elf/cache.c
+++ b/elf/cache.c
@@ -475,7 +475,7 @@ add_to_cache (const char *path, const char *lib, int flags,
   new_entry->bits_hwcap = 0;
 
   /* Count the number of bits set in the masked value.  */
-  for (i = 0; (~((1ULL << i) - 1) & hwcap) != 0; ++i)
+  for (i = 0; (~((1ULL << i) - 1) & hwcap) != 0 && i < 8 * sizeof (hwcap); ++i)
     if ((hwcap & (1ULL << i)) != 0)
       ++new_entry->bits_hwcap;