From: Luca Bacci Date: Wed, 19 Jul 2023 14:19:28 +0000 (+0200) Subject: Add check for large compose files X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~57^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=add197bcf72118d599b13adee8088e745a97bd88;p=gtk4.git Add check for large compose files Fixes #4990 --- diff --git a/gtk/gtkcomposetable.c b/gtk/gtkcomposetable.c index f999ddbc26..b8842d9731 100644 --- a/gtk/gtkcomposetable.c +++ b/gtk/gtkcomposetable.c @@ -980,6 +980,7 @@ parser_get_compose_table (GtkComposeParser *parser) current_first = (guint16)sequence[0]; data[first_pos] = (guint16)sequence[0]; + for (i = 1; i < index_rowstride; i++) data[first_pos + i] = rest_pos; } @@ -998,6 +999,14 @@ parser_get_compose_table (GtkComposeParser *parser) rest_pos += len; + if (rest_pos >= 0x8000) + { + g_warning ("GTK can't handle compose tables this large (%s)", parser->compose_file ? parser->compose_file : ""); + g_free (data); + g_string_free (char_data, TRUE); + return NULL; + } + for (i = len + 1; i < index_rowstride; i++) data[first_pos + i] = rest_pos;