From: Matthias Clasen Date: Mon, 2 May 2022 08:03:45 +0000 (+0800) Subject: Reject compose tables that are too large X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2~4^2~235^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2b183a9f4e90b7348380dab4ecd8141f608d8ae4;p=gtk4.git 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 --- diff --git a/gtk/gtkcomposetable.c b/gtk/gtkcomposetable.c index 4ec357fc97..eda1e5ad5b 100644 --- a/gtk/gtkcomposetable.c +++ b/gtk/gtkcomposetable.c @@ -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);