Reject compose tables that are too large

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
This commit is contained in:
Matthias Clasen 2022-05-02 16:03:45 +08:00
parent 5df314fa8f
commit 2b183a9f4e

View File

@ -942,7 +942,12 @@ parser_get_compose_table (GtkComposeParser *parser)
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);