diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-11-24 15:59:44 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-11-24 15:59:44 +0000 |
commit | bf5604ebb1dc7ad2264f787ca2c32981053ddf7d (patch) | |
tree | 8cc6042b32da93e89c22af7ad287daf470adb186 | |
parent | 479249082b50b007c30b2041e403e9bc18076509 (diff) | |
download | rspamd-bf5604ebb1dc7ad2264f787ca2c32981053ddf7d.tar.gz rspamd-bf5604ebb1dc7ad2264f787ca2c32981053ddf7d.zip |
Fix another stupid mistake for adding hashes
-rw-r--r-- | src/libserver/fuzzy_backend.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/libserver/fuzzy_backend.c b/src/libserver/fuzzy_backend.c index 3105fdf11..e582de3bf 100644 --- a/src/libserver/fuzzy_backend.c +++ b/src/libserver/fuzzy_backend.c @@ -277,6 +277,8 @@ rspamd_fuzzy_backend_run_stmt (struct rspamd_fuzzy_backend *backend, } stmt = prepared_stmts[idx].stmt; + g_assert (prepared_stmts[idx].idx == idx); + if (stmt == NULL) { if ((retcode = sqlite3_prepare_v2 (backend->db, prepared_stmts[idx].sql, -1, &prepared_stmts[idx].stmt, NULL)) != SQLITE_OK) { @@ -334,7 +336,8 @@ retry: } if (auto_cleanup) { - + sqlite3_clear_bindings (stmt); + sqlite3_reset (stmt); } return retcode; @@ -587,11 +590,16 @@ rspamd_fuzzy_backend_add (struct rspamd_fuzzy_backend *backend, RSPAMD_FUZZY_BACKEND_TRANSACTION_START); if (rc != SQLITE_OK) { + msg_warn_fuzzy_backend ("cannot start transaction to add hash to %d -> " + "%*xs: %s", (gint) cmd->flag, + (gint) sizeof (cmd->digest), cmd->digest, + sqlite3_errmsg (backend->db)); return FALSE; } - rc = rspamd_fuzzy_backend_run_stmt (backend, RSPAMD_FUZZY_BACKEND_CHECK, TRUE, - cmd->digest); + rc = rspamd_fuzzy_backend_run_stmt (backend, TRUE, + RSPAMD_FUZZY_BACKEND_CHECK, + cmd->digest); if (rc == SQLITE_OK) { /* We need to increase weight */ @@ -653,7 +661,7 @@ rspamd_fuzzy_backend_add (struct rspamd_fuzzy_backend *backend, RSPAMD_FUZZY_BACKEND_TRANSACTION_COMMIT); } else { - msg_warn_fuzzy_backend ("cannot commit hash to %d -> " + msg_warn_fuzzy_backend ("cannot add hash to %d -> " "%*xs: %s", (gint) cmd->flag, (gint) sizeof (cmd->digest), cmd->digest, sqlite3_errmsg (backend->db)); @@ -661,6 +669,13 @@ rspamd_fuzzy_backend_add (struct rspamd_fuzzy_backend *backend, RSPAMD_FUZZY_BACKEND_TRANSACTION_ROLLBACK); } + if (rc != SQLITE_OK) { + msg_warn_fuzzy_backend ("cannot commit hash to %d -> " + "%*xs: %s", (gint) cmd->flag, + (gint) sizeof (cmd->digest), cmd->digest, + sqlite3_errmsg (backend->db)); + } + return (rc == SQLITE_OK); } |