Title: [237504] releases/WebKitGTK/webkit-2.22/Source/WebCore
Revision
237504
Author
[email protected]
Date
2018-10-28 06:42:11 -0700 (Sun, 28 Oct 2018)

Log Message

Merged r236789 - Ref<FetchResponse> use-after-move in DOMCache::put()
https://bugs.webkit.org/show_bug.cgi?id=190239

Reviewed by Youenn Fablet.

Retrieve reference from the Ref<FetchResponse> object before it's
move-captured in the lambda that's passed to the
FetchResponse::consumeBodyReceivedByChunk() method that is invoked on
that very same object. This is a classic use-after-move bug that pops
up on compilers with different C++ calling convention.

* Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::put):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog (237503 => 237504)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog	2018-10-28 13:42:05 UTC (rev 237503)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog	2018-10-28 13:42:11 UTC (rev 237504)
@@ -1,3 +1,19 @@
+2018-10-03  Zan Dobersek  <[email protected]>
+
+        Ref<FetchResponse> use-after-move in DOMCache::put()
+        https://bugs.webkit.org/show_bug.cgi?id=190239
+
+        Reviewed by Youenn Fablet.
+
+        Retrieve reference from the Ref<FetchResponse> object before it's
+        move-captured in the lambda that's passed to the
+        FetchResponse::consumeBodyReceivedByChunk() method that is invoked on
+        that very same object. This is a classic use-after-move bug that pops
+        up on compilers with different C++ calling convention.
+
+        * Modules/cache/DOMCache.cpp:
+        (WebCore::DOMCache::put):
+
 2018-09-20  Zalan Bujtas  <[email protected]>
 
         Release assert under RenderView::pageOrViewLogicalHeight

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/Modules/cache/DOMCache.cpp (237503 => 237504)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/Modules/cache/DOMCache.cpp	2018-10-28 13:42:05 UTC (rev 237503)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/Modules/cache/DOMCache.cpp	2018-10-28 13:42:11 UTC (rev 237504)
@@ -350,7 +350,8 @@
         response->readableStream(*scriptExecutionContext()->execState());
 
     if (response->isBodyReceivedByChunk()) {
-        response->consumeBodyReceivedByChunk([promise = WTFMove(promise), request = WTFMove(request), response = WTFMove(response), data = "" pendingActivity = makePendingActivity(*this), this](auto&& result) mutable {
+        auto& responseRef = response.get();
+        responseRef.consumeBodyReceivedByChunk([promise = WTFMove(promise), request = WTFMove(request), response = WTFMove(response), data = "" pendingActivity = makePendingActivity(*this), this](auto&& result) mutable {
 
             if (result.hasException()) {
                 this->putWithResponseData(WTFMove(promise), WTFMove(request), WTFMove(response), result.releaseException().isolatedCopy());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to