[grilo-plugins/sam/fix-no-chromaprint-crash] tracker: Guard against invalid key mappings



commit 39e51d93175f8234dd3e9ab99209056f188dbc28
Author: Sam Thursfield <sam afuera me uk>
Date:   Sun Sep 29 18:03:38 2019 +0200

    tracker: Guard against invalid key mappings
    
    Any future mistakes like https://gitlab.gnome.org/GNOME/grilo-plugins/issues/61
    will not crash the process but will just trigger a g_warning() message.

 src/tracker/grl-tracker-utils.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/src/tracker/grl-tracker-utils.c b/src/tracker/grl-tracker-utils.c
index 406f4efc..ed7fb324 100644
--- a/src/tracker/grl-tracker-utils.c
+++ b/src/tracker/grl-tracker-utils.c
@@ -157,10 +157,16 @@ insert_key_mapping (GrlKeyID     grl_key,
                     const gchar *sparql_key_attr_call,
                     const gchar *sparql_key_flavor)
 {
-  tracker_grl_sparql_t *assoc = g_new0 (tracker_grl_sparql_t, 1);
-  GList *assoc_list = g_hash_table_lookup (grl_to_sparql_mapping,
-                                           GRLKEYID_TO_POINTER (grl_key));
-  gchar *canon_name = g_strdup (GRL_METADATA_KEY_GET_NAME (grl_key));
+  tracker_grl_sparql_t *assoc;
+  GList *assoc_list;
+  gchar *canon_name;
+
+  g_return_val_if_fail (grl_key != GRL_METADATA_KEY_INVALID, NULL);
+
+  assoc = g_new0 (tracker_grl_sparql_t, 1);
+  assoc_list = g_hash_table_lookup (grl_to_sparql_mapping,
+                                    GRLKEYID_TO_POINTER (grl_key));
+  canon_name = g_strdup (GRL_METADATA_KEY_GET_NAME (grl_key));
 
   assoc->grl_key               = grl_key;
   assoc->sparql_key_name       = build_flavored_key (canon_name,


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