summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-03-04 20:27:30 +0100
committerCarlos Garnacho <carlosg@gnome.org>2020-03-04 23:35:26 +0100
commit57a863f7415124dd3c69f2f37f3fef63005fc463 (patch)
tree0d87975f7d648c7da0a01e22d12ccb91dcf0d2cc
parent99eb08c7d913cdd3a613394793541a28c115f41c (diff)
downloadtracker-57a863f7415124dd3c69f2f37f3fef63005fc463.tar.gz
libtracker-data: Ensure variable is freed on error conditions
It may be leaked on errors CID: #1491436
-rw-r--r--src/libtracker-data/tracker-vtab-triples.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libtracker-data/tracker-vtab-triples.c b/src/libtracker-data/tracker-vtab-triples.c
index a9e868b1d..101af4d8e 100644
--- a/src/libtracker-data/tracker-vtab-triples.c
+++ b/src/libtracker-data/tracker-vtab-triples.c
@@ -190,15 +190,19 @@ triples_best_index (sqlite3_vtab *vtab,
info->aConstraint[i].iColumn == COL_OBJECT_TYPE)
continue;
- if (info->aConstraint[i].iColumn == COL_ROWID)
+ if (info->aConstraint[i].iColumn == COL_ROWID) {
+ g_free (idx_str);
return SQLITE_ERROR;
+ }
/* We can only check for (in)equality */
if (info->aConstraint[i].op != SQLITE_INDEX_CONSTRAINT_EQ &&
info->aConstraint[i].op != SQLITE_INDEX_CONSTRAINT_NE &&
info->aConstraint[i].op != SQLITE_INDEX_CONSTRAINT_ISNULL &&
- info->aConstraint[i].op != SQLITE_INDEX_CONSTRAINT_ISNOTNULL)
+ info->aConstraint[i].op != SQLITE_INDEX_CONSTRAINT_ISNOTNULL) {
+ g_free (idx_str);
return SQLITE_ERROR;
+ }
/* idxNum encodes the used columns and their operators */
idx |= masks[info->aConstraint[i].iColumn - 1].mask;