diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2023-05-01 17:23:11 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2023-05-01 17:23:11 +0200 |
commit | 126fe9b4cbc95077db805e24bb689f22b56120b1 (patch) | |
tree | 4075b00738e94680150e79c67917b567425fe020 | |
parent | 0619c65273da0ca2644e43596fe3d61c1d8b0737 (diff) | |
download | tracker-126fe9b4cbc95077db805e24bb689f22b56120b1.tar.gz |
core: Handle possible NULL values converting GValues to parser tokens
These might get to happen in the right circumstances, from the looks of
it. Possibly fixes https://retrace.fedoraproject.org/faf/reports/688192/
and similar automated reports.
-rw-r--r-- | src/libtracker-sparql/core/tracker-sparql.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/libtracker-sparql/core/tracker-sparql.c b/src/libtracker-sparql/core/tracker-sparql.c index 745ed46b3..064102a20 100644 --- a/src/libtracker-sparql/core/tracker-sparql.c +++ b/src/libtracker-sparql/core/tracker-sparql.c @@ -9920,9 +9920,11 @@ init_literal_token_from_gvalue (TrackerToken *resolved_out, const GValue *value) { if (G_VALUE_TYPE (value) == G_TYPE_STRING) { - tracker_token_literal_init (resolved_out, - g_value_get_string (value), - -1); + const gchar *str; + + str = g_value_get_string (value); + if (str) + tracker_token_literal_init (resolved_out, str, -1); } else if (G_VALUE_TYPE (value) == G_TYPE_INT64) { gchar *str; str = g_strdup_printf ("%" G_GINT64_FORMAT, @@ -9942,8 +9944,10 @@ init_literal_token_from_gvalue (TrackerToken *resolved_out, gchar *str; str = tracker_date_format_iso8601 (g_value_get_boxed (value)); - tracker_token_literal_init (resolved_out, str, -1); - g_free (str); + if (str) { + tracker_token_literal_init (resolved_out, str, -1); + g_free (str); + } } else if (G_VALUE_TYPE (value) != G_TYPE_INVALID) { g_assert_not_reached (); } |