diff options
author | Pacho Ramos <pacho@gentoo.org> | 2012-10-06 10:15:34 +0000 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2012-10-06 10:15:34 +0000 |
commit | b68812e0b757c64f207611586215a9a9b458a5d2 (patch) | |
tree | d764f2730c4683f748be533f1eccac566bab600d /x11-libs/vte/files | |
parent | Version bump (euscan), drop old. (diff) | |
download | historical-b68812e0b757c64f207611586215a9a9b458a5d2.tar.gz historical-b68812e0b757c64f207611586215a9a9b458a5d2.tar.bz2 historical-b68812e0b757c64f207611586215a9a9b458a5d2.zip |
Fix CVE-2012-2738 for vte:0 also (#427802#c7 by SN (Enlik)).
Package-Manager: portage-2.1.11.24/cvs/Linux x86_64
Diffstat (limited to 'x11-libs/vte/files')
-rw-r--r-- | x11-libs/vte/files/vte-0.28.2-limit-arguments.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch b/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch new file mode 100644 index 000000000000..fd454079390f --- /dev/null +++ b/x11-libs/vte/files/vte-0.28.2-limit-arguments.patch @@ -0,0 +1,40 @@ +From feeee4b5832b17641e505b7083e0d299fdae318e Mon Sep 17 00:00:00 2001 +From: Christian Persch <chpe@gnome.org> +Date: Sat, 19 May 2012 17:36:09 +0000 +Subject: emulation: Limit integer arguments to 65535 + +To guard against malicious sequences containing excessively big numbers, +limit all parsed numbers to 16 bit range. Doing this here in the parsing +routine is a catch-all guard; this doesn't preclude enforcing +more stringent limits in the handlers themselves. + +https://bugzilla.gnome.org/show_bug.cgi?id=676090 +--- +diff --git a/src/table.c b/src/table.c +index 140e8c8..85cf631 100644 +--- a/src/table.c ++++ b/src/table.c +@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array, + if (G_UNLIKELY (*array == NULL)) { + *array = g_value_array_new(1); + } +- g_value_set_long(&value, total); ++ g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT)); + g_value_array_append(*array, &value); + } while (i++ < arginfo->length); + g_value_unset(&value); +diff --git a/src/vteseq.c b/src/vteseq.c +index 457c06a..46def5b 100644 +--- a/src/vteseq.c ++++ b/src/vteseq.c +@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal, + GValueArray *params, + VteTerminalSequenceHandler handler) + { +- vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG); ++ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT); + } + + static void +-- +cgit v0.9.0.2 |