[tracker] libtracker-miner: Fix Invalid memory reads on writeback finalization
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-miner: Fix Invalid memory reads on writeback finalization
- Date: Sun, 17 Jan 2016 19:19:37 +0000 (UTC)
commit 53637578078afd1e52187f2a9252cf63aff9a172
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jan 17 19:00:16 2016 +0100
libtracker-miner: Fix Invalid memory reads on writeback finalization
We connect the signal through g_signal_connect_object() which has the
feature of disconnecting automatically the signal when the given
gobject is finalized. Doing it again ourselves in finalize ends up
in invalid reads, we can avoid doing this altogether.
src/miners/fs/tracker-writeback-dispatcher.c | 15 +++++----------
1 files changed, 5 insertions(+), 10 deletions(-)
---
diff --git a/src/miners/fs/tracker-writeback-dispatcher.c b/src/miners/fs/tracker-writeback-dispatcher.c
index 1d0c5fb..60765da 100644
--- a/src/miners/fs/tracker-writeback-dispatcher.c
+++ b/src/miners/fs/tracker-writeback-dispatcher.c
@@ -45,7 +45,6 @@ typedef struct {
TrackerMinerFiles *files_miner;
GDBusConnection *d_connection;
TrackerSparqlConnection *connection;
- gulong signal_id;
} TrackerWritebackDispatcherPrivate;
enum {
@@ -154,10 +153,6 @@ writeback_dispatcher_finalize (GObject *object)
{
TrackerWritebackDispatcherPrivate *priv = TRACKER_WRITEBACK_DISPATCHER_GET_PRIVATE (object);
- if (priv->signal_id != 0 && g_signal_handler_is_connected (object, priv->signal_id)) {
- g_signal_handler_disconnect (object, priv->signal_id);
- }
-
if (priv->connection) {
g_object_unref (priv->connection);
}
@@ -200,11 +195,11 @@ writeback_dispatcher_initable_init (GInitable *initable,
return FALSE;
}
- priv->signal_id = g_signal_connect_object (priv->files_miner,
- "writeback-file",
- G_CALLBACK (writeback_dispatcher_writeback_file),
- initable,
- G_CONNECT_AFTER);
+ g_signal_connect_object (priv->files_miner,
+ "writeback-file",
+ G_CALLBACK (writeback_dispatcher_writeback_file),
+ initable,
+ G_CONNECT_AFTER);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]