From add197bcf72118d599b13adee8088e745a97bd88 Mon Sep 17 00:00:00 2001 From: Luca Bacci Date: Wed, 19 Jul 2023 16:19:28 +0200 Subject: [PATCH] Add check for large compose files Fixes #4990 --- gtk/gtkcomposetable.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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; -- 2.30.2