From 9f4ebd97d0fbc2bffba13ec945de5e785b15b371 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 26 May 2015 10:09:03 +0100 Subject: [PATCH] Fix hashing. --- src/libserver/events.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libserver/events.c b/src/libserver/events.c index 05d11e2d3..74559872c 100644 --- a/src/libserver/events.c +++ b/src/libserver/events.c @@ -25,6 +25,7 @@ #include "config.h" #include "main.h" #include "events.h" +#include "xxhash.h" #define RSPAMD_SESSION_FLAG_WATCHING (1 << 0) #define RSPAMD_SESSION_FLAG_DESTROYING (1 << 1) @@ -73,10 +74,16 @@ rspamd_event_hash (gconstpointer a) { const struct rspamd_async_event *ev = a; XXH64_state_t st; + union { + event_finalizer_t f; + gpointer p; + } u; + + u.f = ev->fin; XXH64_reset (&st, rspamd_hash_seed ()); XXH64_update (&st, ev->user_data, sizeof (gpointer)); - XXH64_update (&st, ev->fin, sizeof (*ev->fin)); + XXH64_update (&st, &u, sizeof (u)); return XXH64_digest (&st); } -- 2.39.5