Title: [150979] branches/safari-537.43-branch/Source/WebKit2
Revision
150979
Author
[email protected]
Date
2013-05-30 13:53:15 -0700 (Thu, 30 May 2013)

Log Message

Merged r150925.  <rdar://problem/13976781>

Modified Paths

Diff

Modified: branches/safari-537.43-branch/Source/WebKit2/ChangeLog (150978 => 150979)


--- branches/safari-537.43-branch/Source/WebKit2/ChangeLog	2013-05-30 20:51:44 UTC (rev 150978)
+++ branches/safari-537.43-branch/Source/WebKit2/ChangeLog	2013-05-30 20:53:15 UTC (rev 150979)
@@ -1,5 +1,23 @@
 2013-05-30  Lucas Forschler  <[email protected]>
 
+        Merge r150925
+
+    2013-05-29  Anders Carlsson  <[email protected]>
+
+            Return earlier if there's no session storage namespace
+            https://bugs.webkit.org/show_bug.cgi?id=116984
+            <rdar://problem/13976781>
+
+            Reviewed by Tim Horton.
+
+            If we can't find a session storage namespace, return before creating an entry in the m_storageAreasByConnection
+            hash map since then we'll crash trying to remove it later.
+
+            * UIProcess/Storage/StorageManager.cpp:
+            (WebKit::StorageManager::createSessionStorageMap):
+
+2013-05-30  Lucas Forschler  <[email protected]>
+
         Merge r150648
 
     2013-05-24  Anders Carlsson  <[email protected]>

Modified: branches/safari-537.43-branch/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (150978 => 150979)


--- branches/safari-537.43-branch/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-05-30 20:51:44 UTC (rev 150978)
+++ branches/safari-537.43-branch/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-05-30 20:53:15 UTC (rev 150979)
@@ -461,6 +461,15 @@
 
 void StorageManager::createSessionStorageMap(CoreIPC::Connection* connection, uint64_t storageMapID, uint64_t storageNamespaceID, const SecurityOriginData& securityOriginData)
 {
+    // FIXME: This should be a message check.
+    ASSERT((HashMap<uint64_t, RefPtr<SessionStorageNamespace>>::isValidKey(storageNamespaceID)));
+    SessionStorageNamespace* sessionStorageNamespace = m_sessionStorageNamespaces.get(storageNamespaceID);
+    if (!sessionStorageNamespace) {
+        // We're getting an incoming message from the web process that's for session storage for a web page
+        // that has already been closed, just ignore it.
+        return;
+    }
+
     std::pair<RefPtr<CoreIPC::Connection>, uint64_t> connectionAndStorageMapIDPair(connection, storageMapID);
 
     // FIXME: This should be a message check.
@@ -471,14 +480,6 @@
     // FIXME: This should be a message check.
     ASSERT(result.isNewEntry);
 
-    ASSERT((HashMap<uint64_t, RefPtr<SessionStorageNamespace>>::isValidKey(storageNamespaceID)));
-    SessionStorageNamespace* sessionStorageNamespace = m_sessionStorageNamespaces.get(storageNamespaceID);
-    if (!sessionStorageNamespace) {
-        // We're getting an incoming message from the web process that's for session storage for a web page
-        // that has already been closed, just ignore it.
-        return;
-    }
-
     // FIXME: This should be a message check.
     ASSERT(connection == sessionStorageNamespace->allowedConnection());
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to