diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2016-11-06 16:57:43 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2016-11-20 16:43:07 +0100 |
commit | 53bbc6f988ead8e0eee1bcd59d6311f67dc2dd61 (patch) | |
tree | 42b2ff36e3d9d8352cbd977255521975f6376600 | |
parent | 0d6502a3ea307a0d40c6ffabbf92ddddbd069401 (diff) | |
download | tracker-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.c | 11 |
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; |