summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2023-05-01 17:23:11 +0200
committerCarlos Garnacho <carlosg@gnome.org>2023-05-01 17:23:11 +0200
commit126fe9b4cbc95077db805e24bb689f22b56120b1 (patch)
tree4075b00738e94680150e79c67917b567425fe020
parent0619c65273da0ca2644e43596fe3d61c1d8b0737 (diff)
downloadtracker-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.c14
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 ();
}