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;
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 {
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 {
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);
+ }
}
}
}