summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2016-11-06 16:57:43 +0100
committerCarlos Garnacho <carlosg@gnome.org>2016-11-20 16:43:07 +0100
commit53bbc6f988ead8e0eee1bcd59d6311f67dc2dd61 (patch)
tree42b2ff36e3d9d8352cbd977255521975f6376600
parent0d6502a3ea307a0d40c6ffabbf92ddddbd069401 (diff)
downloadtracker-53bbc6f988ead8e0eee1bcd59d6311f67dc2dd61.tar.gz
libtracker-fts: Ensure a sqlite3_stmt is finalized on FTS5 failure paths
It is an error condition if no FTS5 API is found, it's no excuse to leave the sqlite3_stmt unfinalized though.
-rw-r--r--src/libtracker-fts/tracker-fts-tokenizer.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/libtracker-fts/tracker-fts-tokenizer.c b/src/libtracker-fts/tracker-fts-tokenizer.c
index e0550292d..f6c05edbe 100644
--- a/src/libtracker-fts/tracker-fts-tokenizer.c
+++ b/src/libtracker-fts/tracker-fts-tokenizer.c
@@ -371,20 +371,17 @@ static fts5_api *
get_fts5_api (sqlite3 *db) {
int rc = SQLITE_OK;
sqlite3_stmt *stmt;
- fts5_api *api;
+ fts5_api *api = NULL;
rc = sqlite3_prepare_v2(db, "SELECT fts5()",
-1, &stmt, 0);
- if (rc != SQLITE_OK) {
+ if (rc != SQLITE_OK)
return NULL;
- }
- if (sqlite3_step (stmt) != SQLITE_ROW) {
- return NULL;
- }
+ if (sqlite3_step (stmt) == SQLITE_ROW)
+ memcpy (&api, sqlite3_column_blob (stmt, 0), sizeof (api));
- memcpy (&api, sqlite3_column_blob (stmt, 0), sizeof (api));
sqlite3_finalize (stmt);
return api;