summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-11-24 15:59:44 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-11-24 15:59:44 +0000
commitbf5604ebb1dc7ad2264f787ca2c32981053ddf7d (patch)
tree8cc6042b32da93e89c22af7ad287daf470adb186
parent479249082b50b007c30b2041e403e9bc18076509 (diff)
downloadrspamd-bf5604ebb1dc7ad2264f787ca2c32981053ddf7d.tar.gz
rspamd-bf5604ebb1dc7ad2264f787ca2c32981053ddf7d.zip
Fix another stupid mistake for adding hashes
-rw-r--r--src/libserver/fuzzy_backend.c23
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);
}