From: Vsevolod Stakhov Date: Sat, 16 Sep 2017 12:52:43 +0000 (+0100) Subject: [Fix] Do not include idempotent/nostat symbols to checksum X-Git-Tag: 1.7.0~641 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6546a6b24497b6f85706ee6f4bf5dd4ed36a18f8;p=rspamd.git [Fix] Do not include idempotent/nostat symbols to checksum --- diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index 3a8c4ee32..c76c17e4e 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -769,18 +769,24 @@ rspamd_symbols_cache_add_symbol (struct symbols_cache *cache, item->parent = parent; cache->used_items ++; + if (!(item->type & + (SYMBOL_TYPE_IDEMPOTENT|SYMBOL_TYPE_NOSTAT|SYMBOL_TYPE_CLASSIFIER))) { + if (name != NULL) { + cache->cksum = t1ha (name, strlen (name), + cache->cksum); + } else { + cache->cksum = t1ha (&item->id, sizeof (item->id), + cache->cksum); + } + } + if (name != NULL) { item->symbol = rspamd_mempool_strdup (cache->static_pool, name); msg_debug_cache ("used items: %d, added symbol: %s, %d", cache->used_items, name, item->id); - cache->cksum = t1ha (item->symbol, strlen (item->symbol), - cache->cksum); - } - else { + } else { msg_debug_cache ("used items: %d, added unnamed symbol: %d", cache->used_items, item->id); - cache->cksum = t1ha (&item->id, sizeof (item->id), - cache->cksum); } g_ptr_array_add (cache->items_by_id, item);