From: Vsevolod Stakhov Date: Tue, 19 Apr 2016 14:03:01 +0000 (+0100) Subject: [Fix] Fix disabling of virtual symbols X-Git-Tag: 1.2.4~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67de370681b5d2590609b7509f3899c99db89a84;p=thirdparty%2Frspamd.git [Fix] Fix disabling of virtual symbols --- diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index 0ee9ed74c4..8b530cefee 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -1724,6 +1724,7 @@ rspamd_symbols_cache_disable_symbol (struct rspamd_task *task, { struct cache_savepoint *checkpoint; struct cache_item *item; + gint id; if (task->checkpoint == NULL) { checkpoint = rspamd_symbols_cache_make_checkpoint (task, cache); @@ -1733,10 +1734,11 @@ rspamd_symbols_cache_disable_symbol (struct rspamd_task *task, checkpoint = task->checkpoint; } - item = g_hash_table_lookup (cache->items_by_symbol, symbol); + id = rspamd_symbols_cache_find_symbol_parent (cache, symbol); - if (item != NULL) { + if (id > 0) { /* Set executed and finished flags */ + item = g_ptr_array_index (cache->items_by_id, id); setbit (checkpoint->processed_bits, item->id * 2); setbit (checkpoint->processed_bits, item->id * 2 + 1);