[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