mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
GVariant: Better handling of invalid UTF-8
g_variant_new_string() hits a g_return_if_fail() when given invalid UTF-8. That's certainly the right thing to do, but g_variant_builder_add() uses this function internally and crashes when it returns NULL due to the user passing a non-utf8 string. We can protect the internal code by returning "[Invalid UTF-8]" in this case while also making the problem easier to debug (and less fatal). Closes #632631.
This commit is contained in:
parent
d97cbc6731
commit
e823ba10d3
@ -3687,7 +3687,16 @@ g_variant_valist_new_nnp (const gchar **str,
|
||||
}
|
||||
|
||||
case 's':
|
||||
return g_variant_new_string (ptr);
|
||||
{
|
||||
GVariant *value;
|
||||
|
||||
value = g_variant_new_string (ptr);
|
||||
|
||||
if (value == NULL)
|
||||
value = g_variant_new_string ("[Invalid UTF-8]");
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
case 'o':
|
||||
return g_variant_new_object_path (ptr);
|
||||
|
Loading…
Reference in New Issue
Block a user