From: Guus Sliepen <guus@tinc-vpn.org>
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: release-1.1pre3~14
X-Git-Url: https://tinc-vpn.org/git/browse?a=commitdiff_plain;h=0ed0cc6f9c30537bd74222fd99a41726d488dd37;p=tinc

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;