Title: [255615] trunk/Source
Revision
255615
Author
[email protected]
Date
2020-02-03 16:31:02 -0800 (Mon, 03 Feb 2020)

Log Message

Crash in WebCore::IDBServer::IDBServer::createIndex
https://bugs.webkit.org/show_bug.cgi?id=207137
<rdar://problem/59096231>

Reviewed by Darin Adler.

Source/WebCore:

Export IDBIndexInfo::isolatedCopy so it can be used in WebKitLegacy framework code.

* Modules/indexeddb/shared/IDBIndexInfo.h:

Source/WebKitLegacy:

* Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::createIndex): Create an isolated copy of IDBIndexInfo before passing it to IDB thread.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (255614 => 255615)


--- trunk/Source/WebCore/ChangeLog	2020-02-04 00:28:44 UTC (rev 255614)
+++ trunk/Source/WebCore/ChangeLog	2020-02-04 00:31:02 UTC (rev 255615)
@@ -1,3 +1,15 @@
+2020-02-03  Sihui Liu  <[email protected]>
+
+        Crash in WebCore::IDBServer::IDBServer::createIndex
+        https://bugs.webkit.org/show_bug.cgi?id=207137
+        <rdar://problem/59096231>
+
+        Reviewed by Darin Adler.
+
+        Export IDBIndexInfo::isolatedCopy so it can be used in WebKitLegacy framework code.
+
+        * Modules/indexeddb/shared/IDBIndexInfo.h:
+
 2020-02-03  Jer Noble  <[email protected]>
 
         Unreviewed iOS build fix; lambdas need an arrow operator between the paramaters and return type.

Modified: trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h (255614 => 255615)


--- trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h	2020-02-04 00:28:44 UTC (rev 255614)
+++ trunk/Source/WebCore/Modules/indexeddb/shared/IDBIndexInfo.h	2020-02-04 00:31:02 UTC (rev 255615)
@@ -37,7 +37,7 @@
     WEBCORE_EXPORT IDBIndexInfo();
     IDBIndexInfo(uint64_t identifier, uint64_t objectStoreIdentifier, const String& name, IDBKeyPath&&, bool unique, bool multiEntry);
 
-    IDBIndexInfo isolatedCopy() const;
+    WEBCORE_EXPORT IDBIndexInfo isolatedCopy() const;
 
     uint64_t identifier() const { return m_identifier; }
     uint64_t objectStoreIdentifier() const { return m_objectStoreIdentifier; }

Modified: trunk/Source/WebKitLegacy/ChangeLog (255614 => 255615)


--- trunk/Source/WebKitLegacy/ChangeLog	2020-02-04 00:28:44 UTC (rev 255614)
+++ trunk/Source/WebKitLegacy/ChangeLog	2020-02-04 00:31:02 UTC (rev 255615)
@@ -1,3 +1,14 @@
+2020-02-03  Sihui Liu  <[email protected]>
+
+        Crash in WebCore::IDBServer::IDBServer::createIndex
+        https://bugs.webkit.org/show_bug.cgi?id=207137
+        <rdar://problem/59096231>
+
+        Reviewed by Darin Adler.
+
+        * Storage/InProcessIDBServer.cpp:
+        (InProcessIDBServer::createIndex): Create an isolated copy of IDBIndexInfo before passing it to IDB thread.
+
 2020-01-31  Don Olmstead  <[email protected]>
 
         [CMake] Add _PRIVATE_LIBRARIES to framework

Modified: trunk/Source/WebKitLegacy/Storage/InProcessIDBServer.cpp (255614 => 255615)


--- trunk/Source/WebKitLegacy/Storage/InProcessIDBServer.cpp	2020-02-04 00:28:44 UTC (rev 255614)
+++ trunk/Source/WebKitLegacy/Storage/InProcessIDBServer.cpp	2020-02-04 00:31:02 UTC (rev 255615)
@@ -322,7 +322,7 @@
 
 void InProcessIDBServer::createIndex(const WebCore::IDBRequestData& requestData, const IDBIndexInfo& info)
 {
-    dispatchTask([this, protectedThis = makeRef(*this), requestData = requestData.isolatedCopy(), info] {
+    dispatchTask([this, protectedThis = makeRef(*this), requestData = requestData.isolatedCopy(), info = info.isolatedCopy()] {
         LockHolder locker(m_server->lock());
         m_server->createIndex(requestData, info);
     });
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to