[arch-commits] Commit in chromium/trunk (2 files)
Evangelos Foutras
foutrelis at archlinux.org
Wed Aug 8 11:31:01 UTC 2012
Date: Wednesday, August 8, 2012 @ 07:31:01
Author: foutrelis
Revision: 164997
upgpkg: chromium 21.0.1180.57-2
Possible fix for FS#30857 (random segfaults).
Added:
chromium/trunk/chromium-21.0.1180.57-fix-crash-in-task-queue.patch
Modified:
chromium/trunk/PKGBUILD
-----------------------------------------------------+
PKGBUILD | 8 ++++-
chromium-21.0.1180.57-fix-crash-in-task-queue.patch | 27 ++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletion(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2012-08-08 08:13:48 UTC (rev 164996)
+++ PKGBUILD 2012-08-08 11:31:01 UTC (rev 164997)
@@ -11,7 +11,7 @@
pkgname=chromium
pkgver=21.0.1180.57
_nacl_sdk=20.0.1132.47
-pkgrel=1
+pkgrel=2
pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
arch=('i686' 'x86_64')
url="http://www.chromium.org/"
@@ -35,6 +35,7 @@
chromium.sh
chromium-20.0.1132.57-glib-2.16-use-siginfo_t.patch
chromium-20.0.1132.57-bison-2.6-fix.patch
+ chromium-21.0.1180.57-fix-crash-in-task-queue.patch
chromium-ppapi-r0.patch)
sha256sums=('311ba95249ea994747355596885c9ad583e55bcbe7220a47ea096898e7aeb145'
'ac371e9e8312f01856e892b29c788acfa03cbb79aaabe0b5a3ae0cd2f8399a91'
@@ -43,6 +44,7 @@
'4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9'
'c1baf14121502efbc2a31b64029dcafa0e28ca5b71ad0e28a3c6342d18198615'
'd7aecc17e1eb582fe791c3e5fb2ca3f0efcb9bf5379309c1c27be35be4363bba'
+ 'cbd04d9a7cfda7e9c39fa215da897991a410fb59bf0f664abf93ab2c38689898'
'1f4b57670d317959bc2dc60e5d2a44aa8fc6028f7ed540cdb502fa0aa99c81bd')
build() {
@@ -56,6 +58,10 @@
patch -d third_party/WebKit -Np1 -i \
"$srcdir/chromium-20.0.1132.57-bison-2.6-fix.patch"
+ # Fix crash in LazyBackgroundTaskQueue::ProcessPendingTasks
+ # http://crbug.com/138790
+ patch -Np1 -i "$srcdir/chromium-21.0.1180.57-fix-crash-in-task-queue.patch"
+
# Fix build without NaCl glibc toolchain (patch from Gentoo)
patch -Np0 -i "$srcdir/chromium-ppapi-r0.patch"
Added: chromium-21.0.1180.57-fix-crash-in-task-queue.patch
===================================================================
--- chromium-21.0.1180.57-fix-crash-in-task-queue.patch (rev 0)
+++ chromium-21.0.1180.57-fix-crash-in-task-queue.patch 2012-08-08 11:31:01 UTC (rev 164997)
@@ -0,0 +1,27 @@
+Index: chrome/browser/extensions/lazy_background_task_queue.cc
+diff --git a/chrome/browser/extensions/lazy_background_task_queue.cc b/chrome/browser/extensions/lazy_background_task_queue.cc
+index b98d44626be848a3a2db04c60ac4cb11ea981243..49bc2229325ce5ba975de4d76347a388a598e86d 100644
+--- a/chrome/browser/extensions/lazy_background_task_queue.cc
++++ b/chrome/browser/extensions/lazy_background_task_queue.cc
+@@ -115,14 +115,16 @@ void LazyBackgroundTaskQueue::ProcessPendingTasks(
+ return;
+ }
+
+- PendingTasksList* tasks = map_it->second.get();
+- for (PendingTasksList::const_iterator it = tasks->begin();
+- it != tasks->end(); ++it) {
++ // Swap the pending tasks to a temporary, to avoid problems if the task
++ // list is modified during processing.
++ PendingTasksList tasks;
++ tasks.swap(*map_it->second);
++ for (PendingTasksList::const_iterator it = tasks.begin();
++ it != tasks.end(); ++it) {
+ it->Run(host);
+ }
+
+- tasks->clear();
+- pending_tasks_.erase(map_it);
++ pending_tasks_.erase(key);
+
+ // Balance the keepalive in AddPendingTask. Note we don't do this on a
+ // failure to load, because the keepalive count is reset in that case.
More information about the arch-commits
mailing list