From: Victor Julien Date: Wed, 30 Oct 2019 12:31:39 +0000 (+0100) Subject: dataset: fix string length handling in hash X-Git-Tag: suricata-5.0.1~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51ec980e803002aba695dc91c542646b64d7ded4;p=thirdparty%2Fsuricata.git dataset: fix string length handling in hash --- 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; }