Changeset 248971 in webkit
- Timestamp:
- Aug 21, 2019 3:45:46 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r248969 r248971 1 2019-08-21 Chris Dumez <cdumez@apple.com> 2 3 Crash under StringImpl::endsWith() in SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade() 4 https://bugs.webkit.org/show_bug.cgi?id=200990 5 <rdar://problem/54566439> 6 7 Reviewed by Alex Christensen. 8 9 Make sure we call isolatedCopy() on SQLiteIDBBackingStore::m_databaseRootDirectory before using 10 it from background threads. 11 12 * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp: 13 (WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade): 14 (WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const): 15 (WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore): 16 * Modules/indexeddb/server/SQLiteIDBBackingStore.h: 17 (WebCore::IDBServer::SQLiteIDBBackingStore::databaseRootDirectory const): 18 1 19 2019-08-21 Chris Dumez <cdumez@apple.com> 2 20 -
trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp
r248856 r248971 766 766 String SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade() 767 767 { 768 String oldOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot(m_databaseRootDirectory, "v0"); 768 auto databaseRootDirectory = this->databaseRootDirectory(); 769 String oldOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot(databaseRootDirectory, "v0"); 769 770 String oldDatabaseDirectory = FileSystem::pathByAppendingComponent(oldOriginDirectory, filenameForDatabaseName()); 770 String newOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot( m_databaseRootDirectory, "v1");771 String newOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot(databaseRootDirectory, "v1"); 771 772 String fileNameHash = SQLiteFileSystem::computeHashForFileName(m_identifier.databaseName()); 772 773 Vector<String> directoriesWithSameHash = FileSystem::listDirectory(newOriginDirectory, fileNameHash + "*"); … … 857 858 uint64_t SQLiteIDBBackingStore::databasesSizeForOrigin() const 858 859 { 859 String oldVersionOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot(m_databaseRootDirectory, "v0"); 860 String newVersionOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot(m_databaseRootDirectory, "v1"); 860 auto databaseRootDirectory = this->databaseRootDirectory(); 861 String oldVersionOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot(databaseRootDirectory, "v0"); 862 String newVersionOriginDirectory = m_identifier.databaseDirectoryRelativeToRoot(databaseRootDirectory, "v1"); 861 863 return databasesSizeForFolder(oldVersionOriginDirectory) + databasesSizeForFolder(newVersionOriginDirectory); 862 864 } … … 2561 2563 SQLiteFileSystem::deleteDatabaseFile(dbFilename); 2562 2564 SQLiteFileSystem::deleteEmptyDatabaseDirectory(m_databaseDirectory); 2563 SQLiteFileSystem::deleteEmptyDatabaseDirectory(m_identifier.databaseDirectoryRelativeToRoot( m_databaseRootDirectory));2565 SQLiteFileSystem::deleteEmptyDatabaseDirectory(m_identifier.databaseDirectoryRelativeToRoot(databaseRootDirectory())); 2564 2566 } 2565 2567 -
trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h
r248856 r248971 109 109 String fullDatabasePath() const; 110 110 String fullDatabaseDirectoryWithUpgrade(); 111 112 String databaseRootDirectory() const { return m_databaseRootDirectory.isolatedCopy(); } 111 113 112 114 bool ensureValidRecordsTable();
Note: See TracChangeset
for help on using the changeset viewer.