vte: remove

This commit is contained in:
Đoàn Trần Công Danh 2020-12-30 22:30:08 +07:00
parent 3c679046c8
commit 6652ae945f
9 changed files with 4 additions and 329 deletions

View file

@ -1,7 +1,7 @@
# Template file for 'removed-packages'
pkgname=removed-packages
version=0.1
revision=1
revision=2
build_style=meta
short_desc="Uninstalls packages removed from repository"
maintainer="Piotr Wójcik <chocimier@tlen.pl>"
@ -77,6 +77,9 @@ replaces="
urlmatch-git<=20141116_2
v8<=3.24.35.33_4
varnish<=6.1.1_3
vte<=0.28.2_16
vte-devel<=0.28.2_16
vte-python<=0.28.2_16
wireguard-go<=0.0.20181222_2
wireshark-gtk<=3.0.7_1
yt-play<=20140117_2

View file

@ -1 +0,0 @@
vte

View file

@ -1 +0,0 @@
vte

View file

@ -1,137 +0,0 @@
Upstream-Status: Backport
CVE: CVE-2012-2738
Signed-off-by: Ross Burton <ross.burton@intel.com>
From e524b0b3bd8fad844ffa73927c199545b892cdbd Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@gnome.org>
Date: Sat, 19 May 2012 19:36:09 +0200
Subject: [PATCH 1/2] 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
---
src/table.c | 2 +-
src/vteseq.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/table.c b/src/table.c
index 140e8c8..85cf631 100644
--- src/table.c
+++ 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 7ef4c8c..10991db 100644
--- src/vteseq.c
+++ 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
--
2.4.9 (Apple Git-60)
From cf1ad453a8def873c49cf6d88162593402f32bb2 Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@gnome.org>
Date: Sat, 19 May 2012 20:04:12 +0200
Subject: [PATCH 2/2] emulation: Limit repetitions
Don't allow malicious sequences to cause excessive repetitions.
https://bugzilla.gnome.org/show_bug.cgi?id=676090
---
src/vteseq.c | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/src/vteseq.c b/src/vteseq.c
index 10991db..209522f 100644
--- src/vteseq.c
+++ src/vteseq.c
@@ -1392,7 +1392,7 @@ vte_sequence_handler_dc (VteTerminal *terminal, GValueArray *params)
static void
vte_sequence_handler_DC (VteTerminal *terminal, GValueArray *params)
{
- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_dc);
+ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_dc);
}
/* Delete a line at the current cursor position. */
@@ -1785,7 +1785,7 @@ vte_sequence_handler_reverse_index (VteTerminal *terminal, GValueArray *params)
static void
vte_sequence_handler_RI (VteTerminal *terminal, GValueArray *params)
{
- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_nd);
+ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_nd);
}
/* Save cursor (position). */
@@ -2777,8 +2777,7 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params)
{
GValue *value;
VteScreen *screen;
- long param, end, row;
- int i;
+ long param, end, row, i, limit;
screen = terminal->pvt->screen;
/* The default is one. */
param = 1;
@@ -2796,7 +2795,13 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params)
} else {
end = screen->insert_delta + terminal->row_count - 1;
}
- /* Insert the new lines at the cursor. */
+
+ /* Only allow to insert as many lines as there are between this row
+ * and the end of the scrolling region. See bug #676090.
+ */
+ limit = end - row + 1;
+ param = MIN (param, limit);
+
for (i = 0; i < param; i++) {
/* Clear a line off the end of the region and add one to the
* top of the region. */
@@ -2817,8 +2822,7 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params)
{
GValue *value;
VteScreen *screen;
- long param, end, row;
- int i;
+ long param, end, row, i, limit;
screen = terminal->pvt->screen;
/* The default is one. */
@@ -2837,6 +2841,13 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params)
} else {
end = screen->insert_delta + terminal->row_count - 1;
}
+
+ /* Only allow to delete as many lines as there are between this row
+ * and the end of the scrolling region. See bug #676090.
+ */
+ limit = end - row + 1;
+ param = MIN (param, limit);
+
/* Clear them from below the current cursor. */
for (i = 0; i < param; i++) {
/* Insert a line at the end of the region and remove one from
--
2.4.9 (Apple Git-60)

View file

@ -1,70 +0,0 @@
From 180dcc578e13c6096e277fb853e7162db640f207 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Tue, 15 Nov 2011 03:06:40 -0500
Subject: [PATCH] Map both gdk's Meta and Alt to vte's Meta for >=gtk+-3.2.2
compatibility
Also, since VTE_META_MASK is now a mask with multiple bits set, code that
compares gdk key modifiers to VTE_META_MASK by numerical equality is no
longer guaranteed to work. Therefore, for such comparisons a new function,
vte_keymap_fixup_modifiers, is introduced; it ensures that if any bits
matching matching VTE_META_MASK are set, then all are set.
https://bugzilla.gnome.org/show_bug.cgi?id=663779
---
src/keymap.c | 15 +++++++++++++--
src/keymap.h | 2 +-
2 files changed, 14 insertions(+), 3 deletions(-)
--- src/keymap.c
+++ src/keymap.c
@@ -990,6 +990,17 @@ static const struct _vte_keymap_group {
{GDK_KEY (F35), _vte_keymap_GDK_F35},
};
+/* Restrict modifiers to the specified mask and ensure that VTE_META_MASK,
+ * despite being a compound mask, is treated as indivisible. */
+GdkModifierType
+_vte_keymap_fixup_modifiers(GdkModifierType modifiers,
+ GdkModifierType mask)
+{
+ if (modifiers & VTE_META_MASK)
+ modifiers |= VTE_META_MASK;
+ return modifiers & mask;
+}
+
/* Map the specified keyval/modifier setup, dependent on the mode, to either
* a literal string or a capability name. */
void
@@ -1104,7 +1115,7 @@ _vte_keymap_map(guint keyval,
} else {
fkey_mode = fkey_default;
}
- modifiers &= (GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
+ modifiers = _vte_keymap_fixup_modifiers(modifiers, GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
/* Search for the conditions. */
for (i = 0; entries[i].normal_length || entries[i].special[0]; i++)
@@ -1375,7 +1386,7 @@ _vte_keymap_key_add_key_modifiers(guint keyval,
return;
}
- switch (modifiers & significant_modifiers) {
+ switch (_vte_keymap_fixup_modifiers(modifiers, significant_modifiers)) {
case 0:
modifier = 0;
break;
--- src/keymap.h
+++ src/keymap.h
@@ -27,7 +27,7 @@
G_BEGIN_DECLS
-#define VTE_META_MASK GDK_META_MASK
+#define VTE_META_MASK (GDK_META_MASK | GDK_MOD1_MASK)
#define VTE_NUMLOCK_MASK GDK_MOD2_MASK
/* Map the specified keyval/modifier setup, dependent on the mode, to either
--
1.7.8.rc3

View file

@ -1,10 +0,0 @@
--- src/pty.c
+++ src/pty.c
@@ -28,6 +28,7 @@
* Since: 0.26
*/
+#define _GNU_SOURCE
#include <config.h>
#include "vtepty.h"

View file

@ -1,65 +0,0 @@
--- src/vte.c 2010-11-30 23:04:53.000000000 -0800
+++ src/vte.c 2010-12-07 20:05:07.865548000 -0800
@@ -3862,6 +3862,7 @@ vte_terminal_process_incoming(VteTermina
long wcount, start, delta;
gboolean leftovers, modified, bottom, again;
gboolean invalidated_text;
+ gboolean in_scroll_region;
GArray *unichars;
struct _vte_incoming_chunk *chunk, *next_chunk, *achunk = NULL;
@@ -3881,6 +3882,10 @@ vte_terminal_process_incoming(VteTermina
cursor = screen->cursor_current;
cursor_visible = terminal->pvt->cursor_visible;
+ in_scroll_region = screen->scrolling_restricted
+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start))
+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end));
+
/* We should only be called when there's data to process. */
g_assert(terminal->pvt->incoming ||
(terminal->pvt->pending->len > 0));
@@ -3979,6 +3984,8 @@ skip_chunk:
* points to the first character which isn't part of this
* sequence. */
if ((match != NULL) && (match[0] != '\0')) {
+ gboolean new_in_scroll_region;
+
/* Call the right sequence handler for the requested
* behavior. */
_vte_terminal_handle_sequence(terminal,
@@ -3989,12 +3996,20 @@ skip_chunk:
start = (next - wbuf);
modified = TRUE;
- /* if we have moved during the sequence handler, restart the bbox */
+ new_in_scroll_region = screen->scrolling_restricted
+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start))
+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end));
+
+ delta = screen->scroll_delta; /* delta may have changed from sequence. */
+
+ /* if we have moved greatly during the sequence handler, or moved into a scroll_region
+ * from outside it, restart the bbox */
if (invalidated_text &&
- (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK ||
- screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK ||
- screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK ||
- screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK)) {
+ ((new_in_scroll_region && !in_scroll_region) ||
+ (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK))) {
/* Clip off any part of the box which isn't already on-screen. */
bbox_topleft.x = MAX(bbox_topleft.x, 0);
bbox_topleft.y = MAX(bbox_topleft.y, delta);
@@ -4014,6 +4029,8 @@ skip_chunk:
bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT;
bbox_topleft.x = bbox_topleft.y = G_MAXINT;
}
+
+ in_scroll_region = new_in_scroll_region;
} else
/* Second, we have a NULL match, and next points to the very
* next character in the buffer. Insert the character which

View file

@ -1,43 +0,0 @@
# Template file for 'vte'
pkgname=vte
version=0.28.2
revision=16
build_style=gnu-configure
configure_args="PYTHON=python2 --disable-static --with-gtk=2.0"
hostmakedepends="automake gettext-devel gtk-doc gobject-introspection libtool
pkg-config intltool python-devel glib-devel pygtk-devel"
makedepends="gtk+-devel ncurses-devel python-devel pygtk-devel"
short_desc="Terminal widget with improved accessibility and I18N support"
maintainer="Orphaned <orphan@voidlinux.org>"
license="LGPL-2.1-or-later"
homepage="http://www.gnome.org"
distfiles="${GNOME_SITE}/vte/0.28/${pkgname}-${version}.tar.bz2"
checksum=8d04e202b617373dfb47689e5e628febe2c58840b34cccc4af4feb88c48df903
pre_configure() {
NOCONFIGURE=1 autoreconf -fi
if [ "$CROSS_BUILD" ]; then
sed -i "s,\(PYTHON_INCLUDES\)=.*,\1=-I${XBPS_CROSS_BASE}/usr/include/python2.7,g" configure
fi
}
vte-python_package() {
lib32disabled=yes
depends="pygtk"
short_desc+=" -- Python bindings"
pkg_install() {
vmove "usr/lib/python*"
vmove "usr/share/pygtk*"
}
}
vte-devel_package() {
depends="libglib-devel pango-devel cairo-devel gtk+-devel vte>=${version}_${revision}"
short_desc+=" -- development files"
pkg_install() {
vmove usr/include
vmove usr/lib/pkgconfig
vmove "usr/lib/*.so"
vmove usr/share/gtk-doc
}
}

View file

@ -1 +0,0 @@
ignore="[!0].* 0.[!2]*"