diff options
author | Ting-Wei Lan <lantw44@gmail.com> | 2019-06-08 11:29:39 +0800 |
---|---|---|
committer | Ting-Wei Lan <lantw44@gmail.com> | 2019-06-08 11:29:39 +0800 |
commit | 69151a51912e330b98a6c8d859f08cce791de3a6 (patch) | |
tree | ffa778560ee58f86195a47bab218b4c7a72e2622 | |
parent | ddf975d41b0e07441c7711197900ee96de09aed3 (diff) | |
download | copr-rpm-spec-69151a51912e330b98a6c8d859f08cce791de3a6.tar copr-rpm-spec-69151a51912e330b98a6c8d859f08cce791de3a6.tar.gz copr-rpm-spec-69151a51912e330b98a6c8d859f08cce791de3a6.tar.bz2 copr-rpm-spec-69151a51912e330b98a6c8d859f08cce791de3a6.tar.lz copr-rpm-spec-69151a51912e330b98a6c8d859f08cce791de3a6.tar.xz copr-rpm-spec-69151a51912e330b98a6c8d859f08cce791de3a6.tar.zst copr-rpm-spec-69151a51912e330b98a6c8d859f08cce791de3a6.zip |
chromium: Fix crash on Fedora 30
-rw-r--r-- | chromium/chromium/chromium-gcc9-r666279.patch | 59 | ||||
-rw-r--r-- | chromium/chromium/chromium.spec | 8 |
2 files changed, 65 insertions, 2 deletions
diff --git a/chromium/chromium/chromium-gcc9-r666279.patch b/chromium/chromium/chromium-gcc9-r666279.patch new file mode 100644 index 0000000..0e8b680 --- /dev/null +++ b/chromium/chromium/chromium-gcc9-r666279.patch @@ -0,0 +1,59 @@ +From cdf306db81efaaaa954487585d5a5a16205a5ebd Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz <jose.dapena@lge.com> +Date: Wed, 5 Jun 2019 14:45:06 +0000 +Subject: [PATCH] Avoid pure virtual crash destroying RenderProcessUserData +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When RenderProcessUserData is destroyed from the destructor of +RenderProcessHostImpl, it is done in the destructor of RenderProcessHost. +At this point RemoveObserver override is already freed, so RenderProcessHost +is pure virtual. This crash happens at least building with GCC: + + at /usr/include/c++/8/ext/new_allocator.h:140 + (this=0x7fffffffcb50, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/stl_tree.h:964 + +We need to destroy RenderProcessUserData before that happens. To do that +we can just override RenderProcessHostDestroyed. + +Bug: 910288 +Change-Id: I38107b178829b0cb7494f5333b765e5b087d82cd +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645366 +Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org> +Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org> +Cr-Commit-Position: refs/heads/master@{#666279} +--- + .../browser/performance_manager/render_process_user_data.cc | 5 +++++ + .../browser/performance_manager/render_process_user_data.h | 1 + + 2 files changed, 6 insertions(+) + +diff --git a/chrome/browser/performance_manager/render_process_user_data.cc b/chrome/browser/performance_manager/render_process_user_data.cc +index 2e2c199d4fff..ef6e1fbfb986 100644 +--- a/chrome/browser/performance_manager/render_process_user_data.cc ++++ b/chrome/browser/performance_manager/render_process_user_data.cc +@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProcessExited( + base::Unretained(process_node_.get()), info.exit_code)); + } + ++void RenderProcessUserData::RenderProcessHostDestroyed( ++ content::RenderProcessHost* host) { ++ host->RemoveUserData(kRenderProcessUserDataKey); ++} ++ + } // namespace performance_manager +diff --git a/chrome/browser/performance_manager/render_process_user_data.h b/chrome/browser/performance_manager/render_process_user_data.h +index ac74b1df2040..f3b4d162e6d3 100644 +--- a/chrome/browser/performance_manager/render_process_user_data.h ++++ b/chrome/browser/performance_manager/render_process_user_data.h +@@ -47,6 +47,7 @@ class RenderProcessUserData : public base::SupportsUserData::Data, + void RenderProcessExited( + content::RenderProcessHost* host, + const content::ChildProcessTerminationInfo& info) override; ++ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override; + + // All instances are linked together in a doubly linked list to allow orderly + // destruction at browser shutdown time. +-- +2.21.0 + diff --git a/chromium/chromium/chromium.spec b/chromium/chromium/chromium.spec index c4448ab..3c01d80 100644 --- a/chromium/chromium/chromium.spec +++ b/chromium/chromium/chromium.spec @@ -48,7 +48,7 @@ Name: chromium Version: 75.0.3770.80 -Release: 100%{?dist} +Release: 101%{?dist} Summary: A WebKit (Blink) powered web browser License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2) @@ -96,7 +96,8 @@ Patch60: chromium-python2.patch # Pull upstream patches Patch70: chromium-angle-gcc9.patch Patch71: chromium-gcc9-r654570.patch -Patch72: chromium-gcc9-r666714.patch +Patch72: chromium-gcc9-r666279.patch +Patch73: chromium-gcc9-r666714.patch # Pull patches from Fedora # https://src.fedoraproject.org/rpms/chromium/c/9071ee2d2f996b84 @@ -640,6 +641,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog +* Sat Jun 08 2019 - Ting-Wei Lan <lantw44@gmail.com> - 75.0.3770.80-101 +- Fix crash on Fedora 30 + * Fri Jun 07 2019 - Ting-Wei Lan <lantw44@gmail.com> - 75.0.3770.80-100 - Update to 75.0.3770.80 |