From 89711694a948df88cafe7574cdcb08fb6e5308fa Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 10 Jul 2015 16:24:32 +0100 Subject: Finally fix an issue with data isolation in sqlite. --- src/libutil/sqlite_utils.c | 8 ++++++++ src/libutil/sqlite_utils.h | 3 +++ 2 files changed, 11 insertions(+) (limited to 'src') diff --git a/src/libutil/sqlite_utils.c b/src/libutil/sqlite_utils.c index 5691be132..61ba49caf 100644 --- a/src/libutil/sqlite_utils.c +++ b/src/libutil/sqlite_utils.c @@ -156,6 +156,10 @@ rspamd_sqlite3_run_prstmt (sqlite3 *db, GArray *stmts, } } + if (!(nst->flags & RSPAMD_SQLITE3_STMT_MULTIPLE)) { + sqlite3_reset (stmt); + } + return SQLITE_OK; } else if (retcode != SQLITE_DONE) { @@ -163,6 +167,10 @@ rspamd_sqlite3_run_prstmt (sqlite3 *db, GArray *stmts, retcode, sqlite3_errmsg (db)); } + if (!(nst->flags & RSPAMD_SQLITE3_STMT_MULTIPLE)) { + sqlite3_reset (stmt); + } + return retcode; } diff --git a/src/libutil/sqlite_utils.h b/src/libutil/sqlite_utils.h index 18dd20a6f..3a8f81b18 100644 --- a/src/libutil/sqlite_utils.h +++ b/src/libutil/sqlite_utils.h @@ -29,6 +29,8 @@ #include "config.h" #include "sqlite3.h" +#define RSPAMD_SQLITE3_STMT_MULTIPLE (1 << 0) + struct rspamd_sqlite3_prstmt { gint idx; const gchar *sql; @@ -36,6 +38,7 @@ struct rspamd_sqlite3_prstmt { sqlite3_stmt *stmt; gint result; const gchar *ret; + gint flags; }; /** -- cgit v1.2.3