[libgda] Fix memory leak at SQLite provider render statement



commit 8100be9be69d59431d6ed26c5cde9daf9d963096
Author: Daniel Espinosa <esodan gmail com>
Date:   Sun Apr 14 20:48:35 2019 -0500

    Fix memory leak at SQLite provider render statement

 libgda/gda-statement.c              | 2 +-
 libgda/sqlite/gda-sqlite-provider.c | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/libgda/gda-statement.c b/libgda/gda-statement.c
index 0a82b025f..23d206ddd 100644
--- a/libgda/gda-statement.c
+++ b/libgda/gda-statement.c
@@ -621,7 +621,7 @@ static gchar *default_render_distinct (GdaSqlStatementSelect *select, GdaSqlRend
  * to specialize some aspects of SQL rendering to be adapted to the database,'s own SQL dialect
  * (for example SQLite rewrites the 'FALSE' and 'TRUE' literals as '0' and 'NOT 0').
  * 
- * Returns: a new string, or %NULL if an error occurred
+ * Returns: (transfer full): a new string, or %NULL if an error occurred
  */
 gchar *
 gda_statement_to_sql_real (GdaStatement *stmt, GdaSqlRenderingContext *context, GError **error)
diff --git a/libgda/sqlite/gda-sqlite-provider.c b/libgda/sqlite/gda-sqlite-provider.c
index 12d57e7e7..f61243ec3 100644
--- a/libgda/sqlite/gda-sqlite-provider.c
+++ b/libgda/sqlite/gda-sqlite-provider.c
@@ -2981,6 +2981,7 @@ real_prepare (GdaServerProvider *provider, GdaConnection *cnc, GdaStatement *stm
        _gda_sqlite_pstmt_set_nb_rowid_columns (ps, nb_rows_added);
        g_object_unref (real_stmt);
        /*g_print ("%s(%s) => GdaSqlitePStmt %p\n", __FUNCTION__, sql, ps);*/
+  g_free (sql);
        return ps;
 
  out_err:
@@ -2991,7 +2992,9 @@ real_prepare (GdaServerProvider *provider, GdaConnection *cnc, GdaStatement *stm
                g_slist_free (used_params);
        if (params)
                g_object_unref (params);
-       g_free (sql);
+  if (sql != NULL) {
+    g_free (sql);
+  }
        return NULL;
 }
 


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