]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dataset: fix string length handling in hash 4337/head
authorVictor Julien <victor@inliniac.net>
Wed, 30 Oct 2019 12:31:39 +0000 (13:31 +0100)
committerVictor Julien <victor@inliniac.net>
Wed, 30 Oct 2019 12:31:39 +0000 (13:31 +0100)
src/datasets-string.c

index 3d669391a2501b9a102cf0590dfeef75804a65e6..547a39d3425d4029d28d4879e535a60c885a1d25 100644 (file)
@@ -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;
 }