From 0ed0cc6f9c30537bd74222fd99a41726d488dd37 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Tue, 9 Oct 2012 17:49:09 +0200 Subject: [PATCH] Fix hash functions for keys whose size is not divisible by 4. --- src/hash.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hash.c b/src/hash.c index e5f2e00..cf5ba90 100644 --- a/src/hash.c +++ b/src/hash.c @@ -27,10 +27,12 @@ static uint32_t hash_function(const void *p, size_t len) { const uint8_t *q = p; uint32_t hash = 0; - while(len > 0) { + while(true) { for(int i = len > 4 ? 4 : len; --i;) hash += q[i] << (8 * i); hash *= 0x9e370001UL; // Golden ratio prime. + if(len <= 4) + break; len -= 4; } return hash; -- 2.25.1