Title: [227923] branches/safari-605-branch/Source/WebCore
Revision
227923
Author
[email protected]
Date
2018-01-31 12:08:50 -0800 (Wed, 31 Jan 2018)

Log Message

Cherry-pick r227909. rdar://problem/37079020

Modified Paths

Diff

Modified: branches/safari-605-branch/Source/WebCore/ChangeLog (227922 => 227923)


--- branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-31 20:08:48 UTC (rev 227922)
+++ branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-31 20:08:50 UTC (rev 227923)
@@ -1,3 +1,22 @@
+2018-01-31  Jason Marcell  <[email protected]>
+
+        Cherry-pick r227909. rdar://problem/37079020
+
+    2018-01-31  Youenn Fablet  <[email protected]>
+
+            com.apple.WebKit.Storage crashing at com.apple.WebCore: WebCore::SWServerRegistration::removeClientUsingRegistration
+            https://bugs.webkit.org/show_bug.cgi?id=182316
+            <rdar://problem/37025976>
+
+            Reviewed by Chris Dumez.
+
+            SWServer.m_clientToControllingWorker and SWServerRegistration.m_clientsUsingRegistration might currently get out of sync.
+            This is a defensive fix to ensure storage process will not crash in Release.
+            We keep the ASSERT as this probably means there is an abnormal situation that other patches might fix.
+
+            * workers/service/server/SWServerRegistration.cpp:
+            (WebCore::SWServerRegistration::removeClientUsingRegistration):
+
 2018-01-30  Jason Marcell  <[email protected]>
 
         Cherry-pick r226783. rdar://problem/37077980

Modified: branches/safari-605-branch/Source/WebCore/workers/service/server/SWServerRegistration.cpp (227922 => 227923)


--- branches/safari-605-branch/Source/WebCore/workers/service/server/SWServerRegistration.cpp	2018-01-31 20:08:48 UTC (rev 227922)
+++ branches/safari-605-branch/Source/WebCore/workers/service/server/SWServerRegistration.cpp	2018-01-31 20:08:50 UTC (rev 227923)
@@ -181,6 +181,9 @@
 {
     auto iterator = m_clientsUsingRegistration.find(clientIdentifier.serverConnectionIdentifier);
     ASSERT(iterator != m_clientsUsingRegistration.end());
+    if (iterator == m_clientsUsingRegistration.end())
+        return;
+
     bool wasRemoved = iterator->value.remove(clientIdentifier.contextIdentifier);
     ASSERT_UNUSED(wasRemoved, wasRemoved);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to