Date: Friday, March 27, 2020 @ 22:07:13 Author: heftig Revision: 378576
3.36.1-2 Added: gnome-terminal/trunk/0001-screen-Don-t-dereference-data-unchecked.patch Modified: gnome-terminal/trunk/PKGBUILD ----------------------------------------------------+ 0001-screen-Don-t-dereference-data-unchecked.patch | 71 +++++++++++++++++++ PKGBUILD | 12 ++- 2 files changed, 80 insertions(+), 3 deletions(-) Added: 0001-screen-Don-t-dereference-data-unchecked.patch =================================================================== --- 0001-screen-Don-t-dereference-data-unchecked.patch (rev 0) +++ 0001-screen-Don-t-dereference-data-unchecked.patch 2020-03-27 22:07:13 UTC (rev 378576) @@ -0,0 +1,71 @@ +From 07197c413c19e9aa51ccd29051889307650bede7 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <[email protected]> +Date: Fri, 27 Mar 2020 21:59:16 +0000 +Subject: [PATCH] screen: Don't dereference data unchecked + +It might be NULL. Here, it causes Terminal to crash when opening a new +tab. + + #0 terminal_screen_reexec_from_exec_data (error=0x0, cancellable=0x0, cwd=<optimized out>, envv=0x0, data=0x0, screen=0x55c26b5e6a10) at terminal-screen.c:859 + __func__ = "terminal_screen_reexec_from_screen" + #1 terminal_screen_reexec_from_screen (screen=screen@entry=0x55c26b5e6a10, parent_screen=parent_screen@entry=0x55c26b5e67f0, cancellable=cancellable@entry=0x0, error=error@entry=0x0) at terminal-screen.c:859 + __func__ = "terminal_screen_reexec_from_screen" + #2 0x000055c2694b644f in action_new_terminal_cb (action=<optimized out>, parameter=<optimized out>, user_data=0x55c26b5e43b0) at terminal-window.c:409 + window = 0x55c26b5e43b0 + priv = <optimized out> + app = <optimized out> + profiles_list = <optimized out> + profile = 0x7fbee8003e10 + can_toggle = <optimized out> + __func__ = "action_new_terminal_cb" + mode_str = 0x55c26b318dc0 "tab" + uuid_str = 0x55c26b318dc4 "current" + mode = TERMINAL_NEW_TERMINAL_MODE_TAB + parent_screen = 0x55c26b5e67f0 + screen = 0x55c26b5e6a10 + #3 0x00007fbf0538f61a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0 + #4 0x00007fbf0537097e in () at /usr/lib/libgobject-2.0.so.0 + #5 0x00007fbf05373ab9 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 + #6 0x00007fbf053756b0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 + #7 0x00007fbf05440c5e in () at /usr/lib/libgio-2.0.so.0 + #8 0x00007fbf05441271 in g_action_activate () at /usr/lib/libgio-2.0.so.0 + #9 0x00007fbf05aae63f in () at /usr/lib/libgtk-3.so.0 + #10 0x00007fbf05aae675 in () at /usr/lib/libgtk-3.so.0 + #11 0x00007fbf05aae675 in () at /usr/lib/libgtk-3.so.0 + #12 0x00007fbf05807093 in gtk_window_activate_key () at /usr/lib/libgtk-3.so.0 + #13 0x00007fbf0580c013 in () at /usr/lib/libgtk-3.so.0 + #14 0x00007fbf05abde1c in () at /usr/lib/libgtk-3.so.0 + #15 0x00007fbf053740a0 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 + #16 0x00007fbf053756b0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 + #17 0x00007fbf05826c26 in () at /usr/lib/libgtk-3.so.0 + #18 0x00007fbf0596d14a in () at /usr/lib/libgtk-3.so.0 + #19 0x00007fbf0597061c in gtk_main_do_event () at /usr/lib/libgtk-3.so.0 + #20 0x00007fbf05680f84 in () at /usr/lib/libgdk-3.so.0 + #21 0x00007fbf05650454 in () at /usr/lib/libgdk-3.so.0 + #22 0x00007fbf052949be in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 + #23 0x00007fbf05296831 in () at /usr/lib/libglib-2.0.so.0 + #24 0x00007fbf05296871 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 + #25 0x00007fbf0544d2de in g_application_run () at /usr/lib/libgio-2.0.so.0 + #26 0x000055c2694961f5 in main (argc=<optimized out>, argv=<optimized out>) at server.c:190 + app = 0x55c26b5a8180 + r = 0 +--- + src/terminal-screen.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/terminal-screen.c b/src/terminal-screen.c +index f1475c41..33fbb5df 100644 +--- a/src/terminal-screen.c ++++ b/src/terminal-screen.c +@@ -828,7 +828,7 @@ terminal_screen_reexec_from_exec_data (TerminalScreen *screen, + envv ? envv : data ? data->envv : NULL, + data ? data->as_shell : TRUE, + /* If we have command line args, must always pass the cwd from the command line, too */ +- data->argv ? data->cwd : cwd ? cwd : data ? data->cwd : NULL, ++ data && data->argv ? data->cwd : cwd ? cwd : data ? data->cwd : NULL, + NULL /* fd list */, NULL /* fd array */, + NULL, NULL, NULL, /* callback + data + destroy notify */ + cancellable, +-- +2.25.2 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2020-03-27 21:42:36 UTC (rev 378575) +++ PKGBUILD 2020-03-27 22:07:13 UTC (rev 378576) @@ -3,7 +3,7 @@ pkgname=gnome-terminal pkgver=3.36.1 -pkgrel=1 +pkgrel=2 pkgdesc="The GNOME Terminal Emulator" url="https://wiki.gnome.org/Apps/Terminal" arch=(x86_64) @@ -13,8 +13,10 @@ gnome-shell vala yelp-tools git) groups=(gnome) _commit=c428fb95b47a71743c166f89d1371e9ef327230d # tags/3.36.1^0 -source=("git+https://gitlab.gnome.org/GNOME/gnome-terminal.git#commit=$_commit") -sha256sums=('SKIP') +source=("git+https://gitlab.gnome.org/GNOME/gnome-terminal.git#commit=$_commit" + 0001-screen-Don-t-dereference-data-unchecked.patch) +sha256sums=('SKIP' + 'aeb8b02bdfdd02321fdb376964d25338d64b8cc7f6d9e3522eb018246b2e82cf') pkgver() { cd $pkgname @@ -23,6 +25,10 @@ prepare() { cd $pkgname + + # Fix crash on tab open + git apply -3 ../0001-screen-Don-t-dereference-data-unchecked.patch + NOCONFIGURE=1 ./autogen.sh }
