diff options
Diffstat (limited to 'gnu/packages/patches/icecat-CVE-2015-0815-pt2.patch')
-rw-r--r-- | gnu/packages/patches/icecat-CVE-2015-0815-pt2.patch | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/gnu/packages/patches/icecat-CVE-2015-0815-pt2.patch b/gnu/packages/patches/icecat-CVE-2015-0815-pt2.patch deleted file mode 100644 index 0a0cbed177..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-0815-pt2.patch +++ /dev/null @@ -1,89 +0,0 @@ -From f6d39ec03896eaf5d30d79d8165263c98e957749 Mon Sep 17 00:00:00 2001 -From: Nathan Froyd <froydnj@mozilla.com> -Date: Fri, 6 Feb 2015 16:19:36 -0500 -Subject: [PATCH] Bug 1036515 - Narrow the scope of unlocking mMonitor in - nsTimerImpl::PostTimerEvents. r=bsmedberg, a=abillings - ---- - xpcom/threads/TimerThread.cpp | 55 ++++++++++++++++++++++--------------------- - 1 file changed, 28 insertions(+), 27 deletions(-) - -diff --git a/xpcom/threads/TimerThread.cpp b/xpcom/threads/TimerThread.cpp -index bd586c9..b95846f 100644 ---- a/xpcom/threads/TimerThread.cpp -+++ b/xpcom/threads/TimerThread.cpp -@@ -239,43 +239,44 @@ NS_IMETHODIMP TimerThread::Run() - RemoveTimerInternal(timer); - timer = nullptr; - -+#ifdef DEBUG_TIMERS -+ if (PR_LOG_TEST(GetTimerLog(), PR_LOG_DEBUG)) { -+ PR_LOG(GetTimerLog(), PR_LOG_DEBUG, -+ ("Timer thread woke up %fms from when it was supposed to\n", -+ fabs((now - timerRef->mTimeout).ToMilliseconds()))); -+ } -+#endif -+ - { - // We release mMonitor around the Fire call to avoid deadlock. - MonitorAutoUnlock unlock(mMonitor); - --#ifdef DEBUG_TIMERS -- if (PR_LOG_TEST(GetTimerLog(), PR_LOG_DEBUG)) { -- PR_LOG(GetTimerLog(), PR_LOG_DEBUG, -- ("Timer thread woke up %fms from when it was supposed to\n", -- fabs((now - timerRef->mTimeout).ToMilliseconds()))); -- } --#endif - - // We are going to let the call to PostTimerEvent here handle the - // release of the timer so that we don't end up releasing the timer - // on the TimerThread instead of on the thread it targets. - timerRef = nsTimerImpl::PostTimerEvent(timerRef.forget()); -+ } - -- if (timerRef) { -- // We got our reference back due to an error. -- // Unhook the nsRefPtr, and release manually so we can get the -- // refcount. -- nsrefcnt rc = timerRef.forget().take()->Release(); -- (void)rc; -- -- // The nsITimer interface requires that its users keep a reference -- // to the timers they use while those timers are initialized but -- // have not yet fired. If this ever happens, it is a bug in the -- // code that created and used the timer. -- // -- // Further, note that this should never happen even with a -- // misbehaving user, because nsTimerImpl::Release checks for a -- // refcount of 1 with an armed timer (a timer whose only reference -- // is from the timer thread) and when it hits this will remove the -- // timer from the timer thread and thus destroy the last reference, -- // preventing this situation from occurring. -- MOZ_ASSERT(rc != 0, "destroyed timer off its target thread!"); -- } -+ if (timerRef) { -+ // We got our reference back due to an error. -+ // Unhook the nsRefPtr, and release manually so we can get the -+ // refcount. -+ nsrefcnt rc = timerRef.forget().take()->Release(); -+ (void)rc; -+ -+ // The nsITimer interface requires that its users keep a reference -+ // to the timers they use while those timers are initialized but -+ // have not yet fired. If this ever happens, it is a bug in the -+ // code that created and used the timer. -+ // -+ // Further, note that this should never happen even with a -+ // misbehaving user, because nsTimerImpl::Release checks for a -+ // refcount of 1 with an armed timer (a timer whose only reference -+ // is from the timer thread) and when it hits this will remove the -+ // timer from the timer thread and thus destroy the last reference, -+ // preventing this situation from occurring. -+ MOZ_ASSERT(rc != 0, "destroyed timer off its target thread!"); - } - - if (mShutdown) --- -2.2.1 - |