From: Guus Sliepen Date: Tue, 9 Oct 2012 15:49:09 +0000 (+0200) Subject: Fix hash functions for keys whose size is not divisible by 4. X-Git-Tag: import-tinc-1.1~264 X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=0ed0cc6f9c30537bd74222fd99a41726d488dd37;p=meshlink Fix hash functions for keys whose size is not divisible by 4. --- diff --git a/src/hash.c b/src/hash.c index e5f2e007..cf5ba90a 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;