commit:     9b903750a9a89f7a788370261daff9a8ac0bfe02
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 22 17:23:32 2020 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Oct 22 17:24:09 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b903750

www-client/chromium: backport crash fix

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 ...111.ebuild => chromium-86.0.4240.111-r1.ebuild} |  5 ++-
 ...0.20.ebuild => chromium-87.0.4280.20-r1.ebuild} |  8 +++--
 .../chromium/files/chromium-87-xproto-crash.patch  | 38 ++++++++++++++++++++++
 3 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/www-client/chromium/chromium-86.0.4240.111.ebuild 
b/www-client/chromium/chromium-86.0.4240.111-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-86.0.4240.111.ebuild
rename to www-client/chromium/chromium-86.0.4240.111-r1.ebuild
index df085819384..3afc7420f13 100644
--- a/www-client/chromium/chromium-86.0.4240.111.ebuild
+++ b/www-client/chromium/chromium-86.0.4240.111-r1.ebuild
@@ -235,7 +235,10 @@ src_prepare() {
        # Calling this here supports resumption via FEATURES=keepwork
        python_setup
 
-       eapply "${WORKDIR}/patches"
+       local PATCHES=(
+               "${WORKDIR}/patches"
+               "${FILESDIR}/chromium-87-xproto-crash.patch"
+       )
 
        default
 

diff --git a/www-client/chromium/chromium-87.0.4280.20.ebuild 
b/www-client/chromium/chromium-87.0.4280.20-r1.ebuild
similarity index 99%
rename from www-client/chromium/chromium-87.0.4280.20.ebuild
rename to www-client/chromium/chromium-87.0.4280.20-r1.ebuild
index 15eece70ebe..bf67a111684 100644
--- a/www-client/chromium/chromium-87.0.4280.20.ebuild
+++ b/www-client/chromium/chromium-87.0.4280.20-r1.ebuild
@@ -231,9 +231,13 @@ src_prepare() {
        # Calling this here supports resumption via FEATURES=keepwork
        python_setup
 
-       eapply "${WORKDIR}/patches"
+       local PATCHES=(
+               "${WORKDIR}/patches"
+               "${FILESDIR}/chromium-87-xproto-crash.patch"
+       )
+
        if use vaapi; then
-               eapply "${FILESDIR}/chromium-86-fix-vaapi-on-intel.patch"
+               PATCHES+=( "${FILESDIR}/chromium-86-fix-vaapi-on-intel.patch" )
        fi
 
        default

diff --git a/www-client/chromium/files/chromium-87-xproto-crash.patch 
b/www-client/chromium/files/chromium-87-xproto-crash.patch
new file mode 100644
index 00000000000..d0dc391e8f1
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-xproto-crash.patch
@@ -0,0 +1,38 @@
+From 6e50c5a3abfa22eb17e26086bffbee288d07483e Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasander...@chromium.org>
+Date: Thu, 22 Oct 2020 01:05:44 +0000
+Subject: [PATCH] [XProto] Fix crash in 
media::UserInputMonitorLinuxCore::DispatchXEvent
+
+The X server may send unsolicited events (from clients calling
+XSendEvent() or from new keyboard mappings).  So we must check that
+the event is the correct type before dispatching it.
+
+R=dalecurtis
+
+Change-Id: Ic3e19f7da1415c358991609c9b016bd60ead2038
+Bug: 1140927
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490674
+Commit-Queue: Thomas Anderson <thomasander...@chromium.org>
+Auto-Submit: Thomas Anderson <thomasander...@chromium.org>
+Reviewed-by: Dale Curtis <dalecur...@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#819650}
+---
+
+diff --git a/media/base/user_input_monitor_linux.cc 
b/media/base/user_input_monitor_linux.cc
+index 59e655f..13c373f 100644
+--- a/media/base/user_input_monitor_linux.cc
++++ b/media/base/user_input_monitor_linux.cc
+@@ -115,9 +115,10 @@
+   DCHECK(io_task_runner_->BelongsToCurrentThread());
+ 
+   auto* raw = event->As<x11::Input::RawDeviceEvent>();
+-  DCHECK(raw);
+-  DCHECK(raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress ||
+-         raw->opcode == x11::Input::RawDeviceEvent::RawKeyRelease);
++  if (!raw || (raw->opcode != x11::Input::RawDeviceEvent::RawKeyPress &&
++               raw->opcode != x11::Input::RawDeviceEvent::RawKeyRelease)) {
++    return;
++  }
+ 
+   ui::EventType type = raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress
+                            ? ui::ET_KEY_PRESSED

Reply via email to