Title: [256470] trunk/Source/WebCore
Revision
256470
Author
you...@apple.com
Date
2020-02-12 13:46:36 -0800 (Wed, 12 Feb 2020)

Log Message

ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
https://bugs.webkit.org/show_bug.cgi?id=207657

Reviewed by Chris Dumez.

shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.

* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (256469 => 256470)


--- trunk/Source/WebCore/ChangeLog	2020-02-12 21:35:22 UTC (rev 256469)
+++ trunk/Source/WebCore/ChangeLog	2020-02-12 21:46:36 UTC (rev 256470)
@@ -1,3 +1,16 @@
+2020-02-12  Youenn Fablet  <you...@apple.com>
+
+        ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
+        https://bugs.webkit.org/show_bug.cgi?id=207657
+
+        Reviewed by Chris Dumez.
+
+        shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
+        The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.
+
+        * workers/service/ServiceWorkerContainer.cpp:
+        (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
+
 2020-02-12  Zalan Bujtas  <za...@apple.com>
 
         [LFC][IFC] Do not create Display::Boxes for anonymous inline text boxes

Modified: trunk/Source/WebCore/workers/service/ServiceWorkerContainer.cpp (256469 => 256470)


--- trunk/Source/WebCore/workers/service/ServiceWorkerContainer.cpp	2020-02-12 21:35:22 UTC (rev 256469)
+++ trunk/Source/WebCore/workers/service/ServiceWorkerContainer.cpp	2020-02-12 21:46:36 UTC (rev 256470)
@@ -383,7 +383,7 @@
         destroyJob(job);
     });
 
-    auto notifyIfExitEarly = WTF::makeScopeExit([this, protectedThis = makeRef(*this), key = data.key, &shouldNotifyWhenResolved] {
+    auto notifyIfExitEarly = WTF::makeScopeExit([this, protectedThis = makeRef(*this), key = data.key, shouldNotifyWhenResolved] {
         if (shouldNotifyWhenResolved == ShouldNotifyWhenResolved::Yes)
             notifyRegistrationIsSettled(key);
     });
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to