about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-09-23 23:03:34 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-09-23 23:03:34 +0000
commita3a6c3129f4bdf3f54122355ff8d6843fe40a7ac (patch)
treefcd066c519ae6e3ab90d69ebc9de705be80c188a
parent5057e7ce826bb0be3f476408b2ae364042f2a9bb (diff)
downloadglibc-a3a6c3129f4bdf3f54122355ff8d6843fe40a7ac.tar.gz
glibc-a3a6c3129f4bdf3f54122355ff8d6843fe40a7ac.tar.xz
glibc-a3a6c3129f4bdf3f54122355ff8d6843fe40a7ac.zip
Make locale archive hash function architecture-independent.
-rw-r--r--ChangeLog5
-rw-r--r--locale/hashval.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a83e5f66fb..2963c38af6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-09-23  Joseph Myers  <joseph@codesourcery.com>
+
+	* locale/hashval.h (compute_hashval): Interpret bytes of key as
+	unsigned char.
+
 2013-09-23  Maciej W. Rozycki  <macro@codesourcery.com>
 
 	* manual/threads.texi (POSIX Threads): Fix a typo.
diff --git a/locale/hashval.h b/locale/hashval.h
index 737162f6b8..88e7839386 100644
--- a/locale/hashval.h
+++ b/locale/hashval.h
@@ -37,7 +37,7 @@ compute_hashval (const void *key, size_t keylen)
   while (cnt < keylen)
     {
       hval = (hval << 9) | (hval >> (sizeof hval * CHAR_BIT - 9));
-      hval += (hashval_t) *(((char *) key) + cnt++);
+      hval += (hashval_t) ((const unsigned char *) key)[cnt++];
     }
   return hval != 0 ? hval : ~((hashval_t) 0);
 }