BUG/MINOR: anon: memory illegal accesses in tools.c with hash_anon and hash_ipanon

chipitsine reported in github issue #1872 that in function hash_anon and
hash_ipanon, index_hash can be equal to NB_L_HASH_WORD and can reach an
inexisting line table, the table is initialized hash_word[NB_L_HASH_WORD][20];
so hash_word[NB_L_HASH_WORD] doesn't exist.

No backport needed, except if anonymization mechanism is backported.
This commit is contained in:
Erwan Le Goas 2022-09-21 16:24:23 +02:00 committed by Christopher Faulet
parent ae6b56800f
commit d2605cf0e5

View File

@ -5858,7 +5858,7 @@ void update_word_fingerprint(uint8_t *fp, const char *word)
const char *hash_anon(uint32_t scramble, const char *string2hash, const char *prefix, const char *suffix)
{
index_hash++;
if (index_hash > NB_L_HASH_WORD)
if (index_hash == NB_L_HASH_WORD)
index_hash = 0;
/* don't hash empty strings */
@ -5885,7 +5885,7 @@ const char *hash_ipanon(uint32_t scramble, char *ipstring)
int port;
index_hash++;
if (index_hash > NB_L_HASH_WORD) {
if (index_hash == NB_L_HASH_WORD) {
index_hash = 0;
}