The fixed-size format we use currently can only handle up
to 32768 bytes of string data. If a compose file contains
more, reject it with a warning.
Fixes: #4873
if (char_data->len > 0)
g_string_append_c (char_data, 0);
- g_assert (char_data->len < 0x8000);
+ if (char_data->len >= 0x8000)
+ {
+ g_warning ("GTK can't handle compose tables this large (%s)", parser->compose_file ? parser->compose_file : "");
+ g_string_free (char_data, TRUE);
+ return NULL;
+ }
encoded_value = (guint16) (char_data->len | 0x8000);
g_string_append (char_data, value);