about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-08-15 13:59:59 -0700
committerRoland McGrath <roland@hack.frob.com>2012-08-15 13:59:59 -0700
commitdd924cd7cc3ef8c9da103d883dd784815e388976 (patch)
tree042c0f4d1296aa174181972e60a8ec71cca03da1
parent1afbc875e31e87c2eb8a0cdaf48bc36d3edb363d (diff)
downloadglibc-dd924cd7cc3ef8c9da103d883dd784815e388976.tar.gz
glibc-dd924cd7cc3ef8c9da103d883dd784815e388976.tar.xz
glibc-dd924cd7cc3ef8c9da103d883dd784815e388976.zip
Fix last sha512.c change to avoid compiler warning.
-rw-r--r--ChangeLog5
-rw-r--r--crypt/sha512.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 41aacc8edb..66a0b7178f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-15  Roland McGrath  <roland@hack.frob.com>
+
+	* crypt/sha512.c (sha512_process_block) [!USE_TOTAL128]: Avoid
+	shifting LEN more than 31 bits at once.
+
 2012-08-15  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>
 
 	[BZ #14195]
diff --git a/crypt/sha512.c b/crypt/sha512.c
index bec7bb3515..0675c948c1 100644
--- a/crypt/sha512.c
+++ b/crypt/sha512.c
@@ -125,7 +125,7 @@ sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx)
 #else
   uint64_t lolen = len;
   ctx->total[TOTAL128_low] += lolen;
-  ctx->total[TOTAL128_high] += ((len >> 63 >> 1)
+  ctx->total[TOTAL128_high] += ((len >> 31 >> 31 >> 2)
 				+ (ctx->total[TOTAL128_low] < lolen));
 #endif