[tracker/tracker-0.6] Fixes core dump by double freeing a device in trackerd processor



commit d2bef366c03b99fd9ee4605bcd70ea8dc0ce97fd
Author: Martyn Russell <martyn imendio com>
Date:   Tue Jun 23 15:08:33 2009 +0100

    Fixes core dump by double freeing a device in trackerd processor

 src/trackerd/tracker-processor.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/src/trackerd/tracker-processor.c b/src/trackerd/tracker-processor.c
index ee131e5..1aa8d71 100644
--- a/src/trackerd/tracker-processor.c
+++ b/src/trackerd/tracker-processor.c
@@ -1846,7 +1846,12 @@ tracker_processor_mount_point_removed (TrackerProcessor *processor,
 	 */
 	l = g_list_find_custom (priv->devices, mp, (GCompareFunc) g_strcmp0);
 
-	if (l) {
+
+	/* Make sure we don't remove the current device we are
+	 * processing, this is because we do this same clean up later
+	 * in process_device_next() 
+	 */
+	if (l && l != priv->current_device) {
 		g_free (l->data);
 		priv->devices = g_list_delete_link (priv->devices, l);
 	}



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