guix-devel/gnu/packages/patches/icecat-CVE-2015-2733-pt2.patch

32 lines
1.1 KiB
Diff

From 72cd6e97ae12b89659cd59788bad08cd2f514eff Mon Sep 17 00:00:00 2001
From: Andrea Marchesini <amarchesini@mozilla.com>
Date: Fri, 12 Jun 2015 10:06:19 -0400
Subject: [PATCH] Bug 1169867 - XMLHttpRequest::SendInternal should not unpin
itself when the worker goes away. r=bent, a=abillings
--HG--
extra : transplant_source : %28%B3%BD%9D%E2p%F3%BE%94S%CCD%08%8B%07%8A%CC%17%B0%7B
---
dom/workers/XMLHttpRequest.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dom/workers/XMLHttpRequest.cpp b/dom/workers/XMLHttpRequest.cpp
index 5690af5..d425eac 100644
--- a/dom/workers/XMLHttpRequest.cpp
+++ b/dom/workers/XMLHttpRequest.cpp
@@ -1829,6 +1829,11 @@ XMLHttpRequest::SendInternal(const nsAString& aStringBody,
new SendRunnable(mWorkerPrivate, mProxy, aStringBody, Move(aBody),
aClonedObjects, syncLoopTarget, hasUploadListeners);
if (!runnable->Dispatch(cx)) {
+ // Dispatch() may have spun the event loop and we may have already unrooted.
+ // If so we don't want autoUnpin to try again.
+ if (!mRooted) {
+ autoUnpin.Clear();
+ }
aRv.Throw(NS_ERROR_FAILURE);
return;
}
--
2.4.3