Changeset 202822 in webkit


Ignore:
Timestamp:
Jul 5, 2016 11:05:31 AM (8 years ago)
Author:
beidson@apple.com
Message:

Database process crashes deleting a corrupt SQLite database file (null deref).
https://bugs.webkit.org/show_bug.cgi?id=155506.

Reviewed by Alex Christensen.

Source/WebCore:

Covered by new API test.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore): Null check.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-shm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-wal: Added.
Location:
trunk
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r202821 r202822  
     12016-07-05  Brady Eidson  <beidson@apple.com>
     2
     3        Database process crashes deleting a corrupt SQLite database file (null deref).
     4        https://bugs.webkit.org/show_bug.cgi?id=155506.
     5
     6        Reviewed by Alex Christensen.
     7
     8        Covered by new API test.
     9
     10        * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
     11        (WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore): Null check.
     12
    1132016-07-05  Brady Eidson  <beidson@apple.com>
    214
  • trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp

    r201665 r202822  
    20572057        bool errored = true;
    20582058
    2059         SQLiteStatement sql(*m_sqliteDB, ASCIILiteral("SELECT fileName FROM BlobFiles;"));
    2060         if (sql.prepare() == SQLITE_OK) {
    2061             int result = sql.step();
    2062             while (result == SQLITE_ROW) {
    2063                 blobFiles.append(sql.getColumnText(0));
    2064                 result = sql.step();
     2059        if (m_sqliteDB) {
     2060            SQLiteStatement sql(*m_sqliteDB, ASCIILiteral("SELECT fileName FROM BlobFiles;"));
     2061            if (sql.prepare() == SQLITE_OK) {
     2062                int result = sql.step();
     2063                while (result == SQLITE_ROW) {
     2064                    blobFiles.append(sql.getColumnText(0));
     2065                    result = sql.step();
     2066                }
     2067
     2068                if (result == SQLITE_DONE)
     2069                    errored = false;
    20652070            }
    2066 
    2067             if (result == SQLITE_DONE)
    2068                 errored = false;
    20692071        }
    20702072
  • trunk/Tools/ChangeLog

    r202819 r202822  
     12016-07-05  Brady Eidson  <beidson@apple.com>
     2
     3        Database process crashes deleting a corrupt SQLite database file (null deref).
     4        https://bugs.webkit.org/show_bug.cgi?id=155506.
     5
     6        Reviewed by Alex Christensen.
     7
     8        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     9        * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.html: Added.
     10        * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm: Added.
     11        * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3: Added.
     12        * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-shm: Added.
     13        * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-wal: Added.
     14
    1152016-07-05  Alexey Proskuryakov  <ap@apple.com>
    216
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r202809 r202822  
    6565                37E1064C1697681800B78BD0 /* DOMHTMLTableCellElementCellAbove.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 37E1064B169767F700B78BD0 /* DOMHTMLTableCellElementCellAbove.html */; };
    6666                4BFDFFA71314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BFDFFA61314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp */; };
     67                510477721D298DDD009747EB /* IDBDeleteRecovery.sqlite3 in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5104776F1D298D85009747EB /* IDBDeleteRecovery.sqlite3 */; };
     68                510477731D298DDD009747EB /* IDBDeleteRecovery.sqlite3-shm in Copy Resources */ = {isa = PBXBuildFile; fileRef = 510477701D298D85009747EB /* IDBDeleteRecovery.sqlite3-shm */; };
     69                510477741D298DDD009747EB /* IDBDeleteRecovery.sqlite3-wal in Copy Resources */ = {isa = PBXBuildFile; fileRef = 510477711D298D85009747EB /* IDBDeleteRecovery.sqlite3-wal */; };
     70                510477771D298E72009747EB /* IDBDeleteRecovery.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 510477761D298E57009747EB /* IDBDeleteRecovery.html */; };
     71                510477781D29923B009747EB /* IDBDeleteRecovery.mm in Sources */ = {isa = PBXBuildFile; fileRef = 510477751D298E03009747EB /* IDBDeleteRecovery.mm */; };
    6772                51393E221523952D005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51393E1D1523944A005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp */; };
    6873                5142B2731517C8C800C32B19 /* ContextMenuCanCopyURL.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 5142B2721517C89100C32B19 /* ContextMenuCanCopyURL.html */; };
     
    474479                        files = (
    475480                                51A587851D2739E3004BA9AF /* IndexedDBDatabaseProcessKill-1.html in Copy Resources */,
     481                                510477771D298E72009747EB /* IDBDeleteRecovery.html in Copy Resources */,
     482                                510477721D298DDD009747EB /* IDBDeleteRecovery.sqlite3 in Copy Resources */,
     483                                510477731D298DDD009747EB /* IDBDeleteRecovery.sqlite3-shm in Copy Resources */,
     484                                510477741D298DDD009747EB /* IDBDeleteRecovery.sqlite3-wal in Copy Resources */,
    476485                                51A5877D1D1B49CD004BA9AF /* IndexedDBMultiProcess-3.html in Copy Resources */,
    477486                                9984FACE1CFFB090008D198C /* editable-body.html in Copy Resources */,
     
    693702                4BFDFFA61314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HitTestResultNodeHandle_Bundle.cpp; sourceTree = "<group>"; };
    694703                4BFDFFA8131477770061F24B /* HitTestResultNodeHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HitTestResultNodeHandle.cpp; sourceTree = "<group>"; };
     704                5104776F1D298D85009747EB /* IDBDeleteRecovery.sqlite3 */ = {isa = PBXFileReference; lastKnownFileType = file; path = IDBDeleteRecovery.sqlite3; sourceTree = "<group>"; };
     705                510477701D298D85009747EB /* IDBDeleteRecovery.sqlite3-shm */ = {isa = PBXFileReference; lastKnownFileType = file; path = "IDBDeleteRecovery.sqlite3-shm"; sourceTree = "<group>"; };
     706                510477711D298D85009747EB /* IDBDeleteRecovery.sqlite3-wal */ = {isa = PBXFileReference; lastKnownFileType = file; path = "IDBDeleteRecovery.sqlite3-wal"; sourceTree = "<group>"; };
     707                510477751D298E03009747EB /* IDBDeleteRecovery.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = IDBDeleteRecovery.mm; sourceTree = "<group>"; };
     708                510477761D298E57009747EB /* IDBDeleteRecovery.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = IDBDeleteRecovery.html; sourceTree = "<group>"; };
    695709                51393E1D1523944A005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMWindowExtensionBasic_Bundle.cpp; sourceTree = "<group>"; };
    696710                51393E1E1523944A005F39C5 /* DOMWindowExtensionBasic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMWindowExtensionBasic.cpp; sourceTree = "<group>"; };
     
    11581172                                CDE195B31CFE0ADE0053D256 /* FullscreenTopContentInset.mm */,
    11591173                                51A587841D272EF3004BA9AF /* IndexedDBDatabaseProcessKill.mm */,
     1174                                510477751D298E03009747EB /* IDBDeleteRecovery.mm */,
    11601175                                51BCEE491C84F4AF0042C82E /* IndexedDBMultiProcess.mm */,
    11611176                                51B1EE8D1C80F5880064FB98 /* IndexedDBPersistence.mm */,
     
    12651280                                5714ECBA1CA8BFD100051AC8 /* DownloadRequestOriginalURLFrame.html */,
    12661281                                51A587821D272EB5004BA9AF /* IndexedDBDatabaseProcessKill-1.html */,
     1282                                510477761D298E57009747EB /* IDBDeleteRecovery.html */,
     1283                                5104776F1D298D85009747EB /* IDBDeleteRecovery.sqlite3 */,
     1284                                510477701D298D85009747EB /* IDBDeleteRecovery.sqlite3-shm */,
     1285                                510477711D298D85009747EB /* IDBDeleteRecovery.sqlite3-wal */,
    12671286                                51BCEE4C1C84F52C0042C82E /* IndexedDBMultiProcess-1.html */,
    12681287                                51BCEE4D1C84F52C0042C82E /* IndexedDBMultiProcess-2.html */,
     
    20052024                                7CCE7EB31A411A7E00447C4C /* AcceptsFirstMouse.mm in Sources */,
    20062025                                7CCE7EB41A411A7E00447C4C /* AttributedString.mm in Sources */,
     2026                                510477781D29923B009747EB /* IDBDeleteRecovery.mm in Sources */,
    20072027                                7CCE7EB51A411A7E00447C4C /* BackForwardList.mm in Sources */,
    20082028                                7CCE7EDC1A411A9200447C4C /* CalculationValue.cpp in Sources */,
Note: See TracChangeset for help on using the changeset viewer.