[tracker/rss-enclosures] Fix leaks when not unref-ing GFileInfo



commit b3959f1084dc34c3ffb65c527fbf877202e570d7
Author: Aleksander Morgado <aleksander lanedo com>
Date:   Mon Jul 19 10:16:19 2010 +0200

    Fix leaks when not unref-ing GFileInfo

 src/libtracker-common/tracker-file-utils.c         |    4 ++--
 src/miners/fs/tracker-miner-applications.c         |   12 ++++++++----
 src/tracker-extract/tracker-extract-msoffice.c     |    2 ++
 src/tracker-writeback/tracker-writeback-playlist.c |    1 +
 4 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/src/libtracker-common/tracker-file-utils.c b/src/libtracker-common/tracker-file-utils.c
index ef95f5a..5cf65bd 100644
--- a/src/libtracker-common/tracker-file-utils.c
+++ b/src/libtracker-common/tracker-file-utils.c
@@ -503,9 +503,9 @@ path_has_write_access (const gchar *path,
 		}
 
 		writable = g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE);
-	}
 
-	g_object_unref (info);
+		g_object_unref (info);
+	}
 
 	return writable;
 }
diff --git a/src/miners/fs/tracker-miner-applications.c b/src/miners/fs/tracker-miner-applications.c
index 4d99817..24b40e4 100644
--- a/src/miners/fs/tracker-miner-applications.c
+++ b/src/miners/fs/tracker-miner-applications.c
@@ -408,11 +408,11 @@ process_desktop_file (ProcessApplicationData  *data,
 		if (is_software) {
 			gchar *icon;
 
-			insert_data_from_desktop_file (sparql, uri, 
-			                               TRACKER_NIE_PREFIX "comment", key_file, 
+			insert_data_from_desktop_file (sparql, uri,
+			                               TRACKER_NIE_PREFIX "comment", key_file,
 			                               "Comment", TRUE);
-			insert_data_from_desktop_file (sparql, uri, 
-			                               TRACKER_NFO_PREFIX "softwareCmdLine", key_file, 
+			insert_data_from_desktop_file (sparql, uri,
+			                               TRACKER_NFO_PREFIX "softwareCmdLine", key_file,
 			                               "Exec", TRUE);
 
 			icon = g_key_file_get_string (key_file, GROUP_DESKTOP_ENTRY, "Icon", NULL);
@@ -574,6 +574,10 @@ process_file_cb (GObject      *object,
 	if (error) {
 		g_error_free (error);
 	}
+
+	if (file_info) {
+		g_object_unref (file_info);
+	}
 }
 
 static gboolean
diff --git a/src/tracker-extract/tracker-extract-msoffice.c b/src/tracker-extract/tracker-extract-msoffice.c
index aa9d434..ad8dcd9 100644
--- a/src/tracker-extract/tracker-extract-msoffice.c
+++ b/src/tracker-extract/tracker-extract-msoffice.c
@@ -1657,6 +1657,8 @@ extract_msoffice (const gchar          *uri,
 
 	infile = open_uri (uri);
 	if (!infile) {
+		g_object_unref (file_info);
+		gsf_shutdown ();
 		return;
 	}
 
diff --git a/src/tracker-writeback/tracker-writeback-playlist.c b/src/tracker-writeback/tracker-writeback-playlist.c
index 5bf326f..0266391 100644
--- a/src/tracker-writeback/tracker-writeback-playlist.c
+++ b/src/tracker-writeback/tracker-writeback-playlist.c
@@ -122,6 +122,7 @@ get_playlist_type (GFile             *file,
 	}
 
 	mime_type = g_file_info_get_content_type (file_info);
+	g_object_unref (file_info);
 
 	if (!mime_type) {
 		return FALSE;



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