Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2006-06-19 03:25:16 +0400
committerJunio C Hamano <junkio@cox.net>2006-06-19 07:12:20 +0400
commitb47f509ba59df5bd9a780745ca710272c6dd175b (patch)
treeadc485fcd2024dcdb0b7043f26d845b98cfed4e1
parent476a4dfc05f8d67406af277a00f7079b5d6d51e1 (diff)
Fix PPC SHA1 routine for large input buffers
The PPC SHA1 routine had an overflow which meant that it gave incorrect results for input buffers >= 512MB. This fixes it by ensuring that the update of the total length in bits is done using 64-bit arithmetic. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--ppc/sha1.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ppc/sha1.c b/ppc/sha1.c
index 5ba4fc5259..0820398b00 100644
--- a/ppc/sha1.c
+++ b/ppc/sha1.c
@@ -30,7 +30,7 @@ int SHA1_Update(SHA_CTX *c, const void *ptr, unsigned long n)
unsigned long nb;
const unsigned char *p = ptr;
- c->len += n << 3;
+ c->len += (uint64_t) n << 3;
while (n != 0) {
if (c->cnt || n < 64) {
nb = 64 - c->cnt;