[tracker/tracker-0.6] Plug potential leak when setting DB pragmas.



commit e236ff746564cdaae3ee57e49b5d957a58347703
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed May 27 14:15:39 2009 +0200

    Plug potential leak when setting DB pragmas.
    
    Turns out some pragmas can return data, so we have to unref the
    TrackerDBResultSet if any is returned.
---
 src/libtracker-db/tracker-db-manager.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/libtracker-db/tracker-db-manager.c b/src/libtracker-db/tracker-db-manager.c
index a82dc29..d78d650 100644
--- a/src/libtracker-db/tracker-db-manager.c
+++ b/src/libtracker-db/tracker-db-manager.c
@@ -1485,11 +1485,17 @@ db_set_params (TrackerDBInterface *iface,
 	if (pragmas) {
 		g_hash_table_iter_init (&iter, pragmas);
 		while (g_hash_table_iter_next (&iter, &key, &value)) {
-			tracker_db_interface_execute_query (iface,
-							    NULL,
-							    "PRAGMA %s = %s;",
-							    (const gchar*) key,
-							    (const gchar*) value);
+			TrackerDBResultSet *result_set;
+
+			result_set = tracker_db_interface_execute_query (iface,
+									 NULL,
+									 "PRAGMA %s = %s;",
+									 (const gchar*) key,
+									 (const gchar*) value);
+
+			if (result_set) {
+				g_object_unref (result_set);
+			}
 		}
 	}
 



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