From 57a863f7415124dd3c69f2f37f3fef63005fc463 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 4 Mar 2020 20:27:30 +0100 Subject: libtracker-data: Ensure variable is freed on error conditions It may be leaked on errors CID: #1491436 --- src/libtracker-data/tracker-vtab-triples.c | 8 ++++++-- 1 file 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; -- cgit v1.2.1