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