[tracker/wip/ernestask/43] libtracker-sparql: Check for null pointers in finalize()



commit 1d2da6b9913dbe99917494063c5e30bbbb4db679
Author: Ernestas Kulik <ernestask gnome org>
Date:   Sat Oct 6 19:48:30 2018 +0300

    libtracker-sparql: Check for null pointers in finalize()
    
    tracker_notifier_finalize() may accidentally stumble upon a null pointer
    or two, throwing warnings and making Nautilus CI pipelines fail.
    
    Related: https://gitlab.gnome.org/GNOME/tracker/issues/43

 src/libtracker-sparql/tracker-notifier.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
---
diff --git a/src/libtracker-sparql/tracker-notifier.c b/src/libtracker-sparql/tracker-notifier.c
index 4f7647d24..6fc319cb0 100644
--- a/src/libtracker-sparql/tracker-notifier.c
+++ b/src/libtracker-sparql/tracker-notifier.c
@@ -792,11 +792,16 @@ tracker_notifier_finalize (GObject *object)
 
        priv = tracker_notifier_get_instance_private (TRACKER_NOTIFIER (object));
 
-       g_dbus_connection_signal_unsubscribe (priv->dbus_connection,
-                                             priv->graph_updated_signal_id);
+       if (priv->dbus_connection) {
+               g_dbus_connection_signal_unsubscribe (priv->dbus_connection,
+                                                     priv->graph_updated_signal_id);
+
+               g_object_unref (priv->dbus_connection);
+       }
+
+       if (priv->connection)
+               g_object_unref (priv->connection);
 
-       g_object_unref (priv->dbus_connection);
-       g_object_unref (priv->connection);
        g_hash_table_unref (priv->cached_ids);
        g_hash_table_unref (priv->cached_events);
        g_strfreev (priv->expanded_classes);


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