From: Vsevolod Stakhov Date: Wed, 30 Oct 2019 12:44:11 +0000 (+0000) Subject: [Minor] Fix crash where inconsistent fuzzy query was sent X-Git-Tag: 2.2~127 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9de464d9ad75c4e9bfd13cb73814fd1665ce53f2;p=thirdparty%2Frspamd.git [Minor] Fix crash where inconsistent fuzzy query was sent --- diff --git a/src/plugins/fuzzy_check.c b/src/plugins/fuzzy_check.c index 3eed0da514..58ba610fe8 100644 --- a/src/plugins/fuzzy_check.c +++ b/src/plugins/fuzzy_check.c @@ -2960,7 +2960,8 @@ fuzzy_process_handler (struct rspamd_http_connection_entry *conn_ent, struct fuzzy_rule *rule; struct rspamd_controller_session *session = conn_ent->ud; struct rspamd_task *task, **ptask; - gboolean processed = FALSE, res = TRUE, skip = FALSE; + gboolean processed = FALSE, skip = FALSE; + gint res = 0; guint i; GError **err; GPtrArray *commands; @@ -3118,19 +3119,24 @@ fuzzy_process_handler (struct rspamd_http_connection_entry *conn_ent, } } - - if (res) { + if (res > 0) { processed = TRUE; } } if (res == -1) { - msg_warn_task ("cannot send fuzzy request: %s", - strerror (errno)); - rspamd_controller_send_error (conn_ent, 400, "Message sending error"); - rspamd_task_free (task); + if (!processed) { + msg_warn_task ("cannot send fuzzy request: %s", + strerror (errno)); + rspamd_controller_send_error (conn_ent, 400, "Message sending error"); + rspamd_task_free (task); - return; + return; + } + else { + /* Some rules failed and some rules are OK */ + msg_warn_task ("some rules are not processed, but we still sent this request"); + } } else if (!processed) { if (rules) {