From 51ec980e803002aba695dc91c542646b64d7ded4 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Wed, 30 Oct 2019 13:31:39 +0100 Subject: [PATCH] dataset: fix string length handling in hash --- src/datasets-string.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/datasets-string.c b/src/datasets-string.c index 3d669391a2..547a39d342 100644 --- a/src/datasets-string.c +++ b/src/datasets-string.c @@ -88,11 +88,12 @@ bool StringCompare(void *a, void *b) uint32_t StringHash(void *s) { uint32_t hash = 5381; - int c; - uint8_t *sptr = ((StringType *)s)->ptr; + StringType *str = s; - while ((c = *sptr++)) + for (uint32_t i = 0; i < str->len; i++) { + int c = str->ptr[i]; hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ + } return hash; } -- 2.47.2