[tracker/wip/carlosg/coverity-fixes: 9/10] libtracker-data: Ensure variable is freed on error conditions



commit 0f1bfb9ae69175ba7a8b088c06f36f1cb1da9b39
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Mar 4 20:27:30 2020 +0100

    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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]