Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Report corruption if a database contains a reference that is out of range according to the filesize-in-header database size. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a91db0b1cd0b0fbadc5c8fe2eb886362 |
User & Date: | drh 2010-03-31 20:29:07.000 |
Context
2010-03-31
| ||
23:20 | Make sure an OOM error on sqlite3PagerPagecount() is detected and reported out to the interface. (check-in: 8aecf302a5 user: drh tags: trunk) | |
20:29 | Report corruption if a database contains a reference that is out of range according to the filesize-in-header database size. (check-in: a91db0b1cd user: drh tags: trunk) | |
17:47 | Clarification of the implementation of SQLITE_STMTSTATUS_FULLSCAN_STEP. No logical code changes - just commenting and layout changes to improve readability. (check-in: 06b9ca3225 user: drh tags: trunk) | |
Changes
Changes to src/btree.c.
︙ | ︙ | |||
1579 1580 1581 1582 1583 1584 1585 | */ static int getAndInitPage( BtShared *pBt, /* The database file */ Pgno pgno, /* Number of the page to get */ MemPage **ppPage /* Write the page pointer here */ ){ int rc; | < > > > < < < < < < < < < | 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 | */ static int getAndInitPage( BtShared *pBt, /* The database file */ Pgno pgno, /* Number of the page to get */ MemPage **ppPage /* Write the page pointer here */ ){ int rc; assert( sqlite3_mutex_held(pBt->mutex) ); if( pgno<=0 || pgno>btreePagecount(pBt) ){ return SQLITE_CORRUPT_BKPT; } rc = btreeGetPage(pBt, pgno, ppPage, 0); if( rc==SQLITE_OK ){ rc = btreeInitPage(*ppPage); if( rc!=SQLITE_OK ){ releasePage(*ppPage); } } return rc; } /* ** Release a MemPage. This should be called once for each prior ** call to btreeGetPage. */ |
︙ | ︙ |
Changes to test/corruptB.test.
︙ | ︙ | |||
150 151 152 153 154 155 156 | db close file copy -force bak.db test.db hexio_write test.db [expr $offset+8] [hexio_render_int32 0x6FFFFFFF] } {4} do_test corruptB-2.1.2 { sqlite3 db test.db catchsql { SELECT * FROM t1 } | | | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | db close file copy -force bak.db test.db hexio_write test.db [expr $offset+8] [hexio_render_int32 0x6FFFFFFF] } {4} do_test corruptB-2.1.2 { sqlite3 db test.db catchsql { SELECT * FROM t1 } } {1 {database disk image is malformed}} #--------------------------------------------------------------------------- # Corrupt the header-size field of a database record. # do_test corruptB-3.1.1 { db close |
︙ | ︙ |