Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP5:GA
vte
vte-emulation-resize-request-limits.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File vte-emulation-resize-request-limits.patch of Package vte
From fd5511f24b7269195a7083f409244e9787c705dc Mon Sep 17 00:00:00 2001 From: Christian Persch <chpe@src.gnome.org> Date: Sun, 2 Jun 2024 19:13:15 +0200 Subject: [PATCH] emulation: Restrict resize request to sane numbers Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2786 --- src/vteseq.cc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff -urp vte-0.44.2.orig/src/vtedefines.hh vte-0.44.2/src/vtedefines.hh --- vte-0.44.2.orig/src/vtedefines.hh 2016-05-10 10:17:33.000000000 -0500 +++ vte-0.44.2/src/vtedefines.hh 2024-06-12 03:27:13.273424524 -0500 @@ -93,3 +93,6 @@ #define VTE_FONT_SCALE_MIN (.25) #define VTE_FONT_SCALE_MAX (4.) + +#define VTE_MIN_GRID_WIDTH (2) /* space for one wide character */ +#define VTE_MIN_GRID_HEIGHT (1) diff -urp vte-0.44.2.orig/src/vteseq.cc vte-0.44.2/src/vteseq.cc --- vte-0.44.2.orig/src/vteseq.cc 2016-05-10 10:17:33.000000000 -0500 +++ vte-0.44.2/src/vteseq.cc 2024-06-12 03:30:30.083031124 -0500 @@ -198,7 +198,16 @@ void VteTerminalPrivate::emit_resize_window(guint columns, guint rows) { - _vte_debug_print(VTE_DEBUG_SIGNALS, "Emitting `resize-window'.\n"); + // Ignore resizes with excessive number of rows or columns, + // see https://gitlab.gnome.org/GNOME/vte/-/issues/2786 + if (columns < VTE_MIN_GRID_WIDTH || + columns > 511 || + rows < VTE_MIN_GRID_HEIGHT || + rows > 511) + return; + + _vte_debug_print(VTE_DEBUG_SIGNALS, "Emitting `resize-window' %d columns %d rows.\n", + columns, rows); g_signal_emit(m_terminal, signals[SIGNAL_RESIZE_WINDOW], 0, columns, rows); } @@ -3098,10 +3107,6 @@ VteTerminalPrivate::seq_window_manipulat break; case 8: if ((arg1 != -1) && (arg2 != -1)) { - _vte_debug_print(VTE_DEBUG_PARSE, - "Resizing window " - "(to %ld columns, %ld rows).\n", - arg2, arg1); emit_resize_window(arg2, arg1); } break; @@ -3210,9 +3215,6 @@ VteTerminalPrivate::seq_window_manipulat break; default: if (param >= 24) { - _vte_debug_print(VTE_DEBUG_PARSE, - "Resizing to %ld rows.\n", - param); /* Resize to the specified number of * rows. */ emit_resize_window(m_column_count,
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor