From: Vsevolod Stakhov Date: Wed, 24 Oct 2018 09:54:50 +0000 (+0100) Subject: [Minor] Add safety guards for fuzzy checks X-Git-Tag: 1.8.2~149 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5afdefa49ad877677f24ce64f94fbb65e173ba31;p=thirdparty%2Frspamd.git [Minor] Add safety guards for fuzzy checks --- diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c index 751ee2affc..3da793adc0 100644 --- a/src/plugins/fuzzy_check.c +++ b/src/plugins/fuzzy_check.c @@ -2107,7 +2107,9 @@ fuzzy_check_session_is_completed (struct fuzzy_client_session *session) if (nreplied == session->commands->len) { fuzzy_insert_metric_results (session->task, session->results); - rspamd_symcache_item_async_dec_check (session->task, session->item); + if (session->item) { + rspamd_symcache_item_async_dec_check (session->task, session->item); + } rspamd_session_remove_event (session->task->s, fuzzy_io_fin, session); return TRUE; @@ -2182,7 +2184,10 @@ fuzzy_check_io_callback (gint fd, short what, void *arg) errno, strerror (errno)); rspamd_upstream_fail (session->server, FALSE); - rspamd_symcache_item_async_dec_check (session->task, session->item); + + if (session->item) { + rspamd_symcache_item_async_dec_check (session->task, session->item); + } rspamd_session_remove_event (session->task->s, fuzzy_io_fin, session); } else { @@ -2223,7 +2228,9 @@ fuzzy_check_timer_callback (gint fd, short what, void *arg) rspamd_upstream_addr (session->server)), session->retransmits); rspamd_upstream_fail (session->server, FALSE); - rspamd_symcache_item_async_dec_check (session->task, session->item); + if (session->item) { + rspamd_symcache_item_async_dec_check (session->task, session->item); + } rspamd_session_remove_event (session->task->s, fuzzy_io_fin, session); } else { @@ -2879,7 +2886,10 @@ register_fuzzy_client_call (struct rspamd_task *task, rspamd_session_add_event (task->s, fuzzy_io_fin, session, g_quark_from_static_string ("fuzzy check")); session->item = rspamd_symbols_cache_get_cur_item (task); - rspamd_symcache_item_async_inc (task, session->item); + + if (session->item) { + rspamd_symcache_item_async_inc (task, session->item); + } } } }