[tracker/sam/survive-missing-ontologies-gvdb: 2/2] Fix crash in read-only mode when ontologies.gdvb is missing



commit ef89b93f424c45f50db2772e99c9b715395d75f3
Author: Sam Thursfield <sam afuera me uk>
Date:   Sat Mar 2 17:03:34 2019 +0100

    Fix crash in read-only mode when ontologies.gdvb is missing
    
    We shouldn't unref the manager->ontologies object if loading the
    new ontologies failed. Fixes a crash in the fallback code path.

 src/libtracker-data/tracker-data-manager.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 76361eed9..f676fde65 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -3954,6 +3954,7 @@ static void
 load_ontologies_gvdb (TrackerDataManager  *manager,
                       GError             **error)
 {
+       TrackerOntologies *ontologies;
        gchar *filename;
        GFile *child;
 
@@ -3961,8 +3962,12 @@ load_ontologies_gvdb (TrackerDataManager  *manager,
        filename = g_file_get_path (child);
        g_object_unref (child);
 
-       g_object_unref (manager->ontologies);
-       manager->ontologies = tracker_ontologies_load_gvdb (filename, error);
+       ontologies = tracker_ontologies_load_gvdb (filename, error);
+
+       if (ontologies != NULL) {
+               g_object_unref (manager->ontologies);
+               manager->ontologies = ontologies;
+       }
 
        g_free (filename);
 }


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