[tracker] TrackerMiner: Don't try to free invalid pointers.



commit ad48516744178e74971e13caa7f83850b9c68fd6
Author: Carlos Garnacho <carlos lanedo com>
Date:   Mon Nov 2 18:11:03 2009 +0100

    TrackerMiner: Don't try to free invalid pointers.
    
    the result GPtrArray might not be a valid pointer if error is set, so only
    free it if the sparql query was successful. Also, don't try to free it twice,
    although this was safe due to tracker_dbus_results_ptr_array_free() nullifying
    the pointer after freeing.

 src/libtracker-miner/tracker-miner.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner.c b/src/libtracker-miner/tracker-miner.c
index d62c65f..5d02e46 100644
--- a/src/libtracker-miner/tracker-miner.c
+++ b/src/libtracker-miner/tracker-miner.c
@@ -803,16 +803,12 @@ sparql_query_cb (GPtrArray *result,
 
 	run_query_callback (data, result, error);
 
-	if (result) {
-		tracker_dbus_results_ptr_array_free (&result);
-	}
-
 	if (error) {
 		g_error_free (error);
-	}
-
-	if (result) {
-		tracker_dbus_results_ptr_array_free (&result);
+	} else {
+		if (result) {
+			tracker_dbus_results_ptr_array_free (&result);
+		}
 	}
 
 	async_call_data_destroy (data, TRUE);



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