Commit Graph

13886 Commits

Author SHA1 Message Date
drh
b52e9c89df All bytes of a page are initialized, even bytes that follow a 2-byte cell
on a malformed page.

FossilOrigin-Name: 7373a004ed0e2781cda503c73e9a94f24350ef79
2015-05-27 18:13:35 +00:00
drh
f9705d4b66 A different approach to preventing buffer overreads when comparing a vector
of values with a corrupt index record that spans at least one overflow page.

FossilOrigin-Name: 95eaa49f4ee071c7a0f690a695f1f2d1ebca68a8
2015-05-27 15:42:53 +00:00
drh
a7298ac191 Disallow the use of "rowid" in CTEs - it has never worked correctly and it
makes no sense, so we might as well make it an explicit error.
Also: add the PRAGMA cell_size_check=ON command.

FossilOrigin-Name: 19e2cebc12aaa4e72d3bad74af73575a0457e5d4
2015-05-27 15:10:20 +00:00
dan
3548db7c13 A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page.
FossilOrigin-Name: 7e9e1b6123bc455dd7d1c894b6154ccd27acec18
2015-05-27 14:21:05 +00:00
drh
fccda8a162 CTEs have never add working rowids. So disallow the use of the "rowid" column
within CTEs.

FossilOrigin-Name: 0055df0445932a43e42b318ef88672dcbe312c3a
2015-05-27 13:06:55 +00:00
drh
1421d980c5 Add the "PRAGMA cell_size_check=ON" command.
FossilOrigin-Name: 2ead43f074d01312c7642e1df9abccc95547f019
2015-05-27 03:46:18 +00:00
dan
b95e1193d5 Avoid a buffer overread when comparing against a corrupt record that spans at least one overflow page.
FossilOrigin-Name: 62a5b3633a086694ef0e579a0a82322cb1ae3d60
2015-05-26 20:31:20 +00:00
dan
cc7aa1f6f3 Avoid branching on an uninitalized variable when comparing SQL values with the undefined serial types 10 and 11 (which only appear in corrupt databases).
FossilOrigin-Name: b4a45d3b78fede2433ac18f20b1ab7bddee77059
2015-05-26 20:07:32 +00:00
drh
52b33f8047 The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. Test
data is added for database fuzz testing.

FossilOrigin-Name: 5e3e410bf49a29efbf9ff3ef048e158804ca0027
2015-05-26 19:08:14 +00:00
dan
82faa2c88d Merge accidental fork.
FossilOrigin-Name: e85628e34ac684b8a23f49eee71e4d6546e0ef64
2015-05-26 19:01:36 +00:00
dan
584390e8dd Fix a one-byte buffer overread that may follow a syntax error while preparing an SQL statement.
FossilOrigin-Name: 075003930da98419f671b7833a5850693529fb62
2015-05-26 18:58:57 +00:00
drh
4d6fda73b4 Fix fuzzcheck so that it responds correctly to the TEST_FAILURE environment
variable.

FossilOrigin-Name: 76770c9e061e2eb106d7ea402eef888b98ba9d0e
2015-05-26 18:58:32 +00:00
drh
ea93c7005d The "make fuzztest" target now uses fuzzcheck instead of fuzzershell.
FossilOrigin-Name: 4a5f6f1f0128657fd8d4d99d0682edd5bac2a19e
2015-05-26 18:15:08 +00:00
drh
d9972ef752 Enhance fuzzcheck with the ability to store descriptions in each source
database and to run multiple source databases in a single invocation.

FossilOrigin-Name: 193364c81c301a41c16835108d23ad2ab84d9dd7
2015-05-26 17:57:56 +00:00
dan
633d0753ab Add a cast to one side of the test added by [97806a78] in order to avoid a signed/unsigned comparison warning.
FossilOrigin-Name: 5b46d2a78a45de4176b666bfc89c2aaa6f083662
2015-05-26 17:33:30 +00:00
dan
add0804943 Avoid using a zero-sized array within a struct in fts3 code.
FossilOrigin-Name: b05cae36cedd98d59813e637f328a52eee7ef0d2
2015-05-26 17:29:48 +00:00
drh
908aced558 Fix another bug in the in-memory VFS for fuzzcheck.
FossilOrigin-Name: 16878a314baceb14632a3ec43187fcc020089a76
2015-05-26 16:12:45 +00:00
dan
6c1944f659 Update test cases in corruptI.test so that they work with both SQLITE_ENABLE_OVERSIZE_CELL_CHECK and SQLITE_DEFAULT_AUTOVACUUM builds.
FossilOrigin-Name: 22a14663782312fa7f4f18545509ef4b27e9b8c1
2015-05-26 14:57:45 +00:00
dan
fb0246ba8a Return SQLITE_CORRUPT to the user if an attempt is made to add database page 1 to the free page list.
FossilOrigin-Name: 68876003f922635737349f55bc73a78891ea7028
2015-05-26 12:18:17 +00:00
dan
c5b7358513 Fix a problem with ignoring UNIQUE constraints on WITHOUT ROWID tables rendered redundant by the PRIMARY KEY.
FossilOrigin-Name: 3b936913f3dc2cae4c94f983f28d85b136a44c9f
2015-05-26 11:53:14 +00:00
mistachkin
27b1c8ac09 Silence harmless compiler warnings when building the command line utilities with MSVC.
FossilOrigin-Name: d26060c468cc6997e9933d9623a47fcc7d86c2da
2015-05-26 03:31:46 +00:00
mistachkin
7a94e6b061 Add fuzzcheck to makefile clean targets. Also, for consistency, replace a few tabs with spaces.
FossilOrigin-Name: eda2a437506f148bcb5bb33baa64b5ad8ae73ada
2015-05-26 03:24:33 +00:00
drh
e5c5f2cf77 Add the --result-trace option to fuzzcheck, and other interface enhancements.
FossilOrigin-Name: c415bb7bbfd531b138462589cdd58fa0204804e8
2015-05-26 00:28:08 +00:00
drh
aca7ea1e4d Fix an important bug in the xRead method of the in-memory VFS for fuzzcheck.
FossilOrigin-Name: 58cd40e89f3060c63abb9a3fca385a1e72ce7bb4
2015-05-25 23:14:37 +00:00
drh
495a1ef59b Add the fuzzcheck test program.
FossilOrigin-Name: 341cb6abe74e1e9d03c82ffdeba86be6a2d00397
2015-05-25 22:38:00 +00:00
drh
1573dc3bb1 Add fuzzcheck to all makefiles and fix compiler warnings.
FossilOrigin-Name: 7b3d21906a9650377cda56b94facdff75b2cb858
2015-05-25 22:29:26 +00:00
drh
370cf73c4f Merge in trunk fixes.
FossilOrigin-Name: c71c2e1a991775e1711e9621a59dd8a60eec329b
2015-05-25 22:18:33 +00:00
drh
4ab31475dc Improved tracing capabilities in fuzzcheck.
FossilOrigin-Name: 864bfdbfe7b196cc9df2136b15a28e2a0f2713cb
2015-05-25 22:17:06 +00:00
drh
15b3128656 Add the --native-vfs option on fuzzcheck.
FossilOrigin-Name: 12e95e3f178b89d649bc7e30db731df439ae1653
2015-05-25 21:59:05 +00:00
dan
c3e8ef1d0e Fix a case of a corrupt database causing SQLite to read from up to 4 bytes before the start of a memory allocation.
FossilOrigin-Name: 7d2c4f7b6695806ab8ce0c6f49d8bc1d77a4320b
2015-05-25 20:04:15 +00:00
drh
b335d12df7 Merge the btree fixes out of trunk.
FossilOrigin-Name: f3cd8cecf4f7aa3429e3ebc90ed31c4e8fff7bc2
2015-05-25 19:37:17 +00:00
drh
a9542b1bc4 Add the --dbid and --sqlid parameters to fuzzcheck. Other fuzzcheck fixes.
FossilOrigin-Name: 75ec9299faca8ce3d49d825ba6ea60588a91d113
2015-05-25 19:35:42 +00:00
dan
08f901b008 Have the b-tree layer return SQLITE_CORRUPT to any attempt to open a cursor with a root page number less than 1.
FossilOrigin-Name: aa18c8e9d1676b1caa53bc5f5c1dc5f201089b88
2015-05-25 19:24:36 +00:00
drh
3b74d0327f First code for a new utility program to rerun checks on a large number of
fuzzer-generated test cases.

FossilOrigin-Name: c5b4e363528aa1d2d5f41451f16de0aa91152b38
2015-05-25 18:48:19 +00:00
dan
0f8076dd69 Fix a couple of btree asserts that would fail when encountering 32-bit rollover in cell payload size fields (cell payloads this large always indicate corruption).
FossilOrigin-Name: 8fa0937a2f3476dd280259e252d6f422c33d38ee
2015-05-25 18:47:26 +00:00
dan
2fc3a6cd98 Fix a case where database corruption may cause SQLite to write past the end of a buffer.
FossilOrigin-Name: 97806a78142b15f89878e25ee70dc5b0524d6793
2015-05-25 17:07:29 +00:00
dan
cf3d17c604 Fix an assert() in btree routine freeSpace() that may be false if the database is corrupt.
FossilOrigin-Name: 00a473c56188cd60a74559effb114140e3fe8a8d
2015-05-25 15:03:49 +00:00
dan
3fb37f097c Fix an fts4 matchinf() problem triggered by deferred tokens that are part of phrases that are part of AND expressions.
FossilOrigin-Name: f1e942a1dda496a509741e9cc2a17e8b4dac63a3
2015-05-25 10:57:13 +00:00
drh
af80a1c8e7 Fix an obsolete comment - no changes to code.
FossilOrigin-Name: 4e4228c47f862c7f1fb078bf1b8c1d604f09d365
2015-05-25 10:29:52 +00:00
drh
521d7bd214 Remove an incorrect and pointless assert().
FossilOrigin-Name: 8c3929bd42ff9c041df341aced5b7dbc0f563506
2015-05-25 09:33:48 +00:00
drh
7ca0954c2c The assert() changes removed in the previous check-in are needed after all.
FossilOrigin-Name: 336fccc84cd7b770c9c3720efc9976269096232e
2015-05-24 21:46:03 +00:00
drh
0b538f2a81 Better detection of corruption in allocateSpace() in btree.c.
FossilOrigin-Name: bf7bb53ee2485a5342916d514d6c7291eb84c5f1
2015-05-24 21:09:52 +00:00
drh
a1f75d96fd Detect database corruption in the modifyPagePointer() routine and abort.
FossilOrigin-Name: 4f0bba42f904e505900be67b00179ebb1f24ed03
2015-05-24 10:18:12 +00:00
drh
82110da971 Instead of early detection of corruption in balance_nonroot, simply ignore
the error, as it is harmless and exceedingly uncommon.

FossilOrigin-Name: 7bbf9b3cd6ebf103ebd8347579aef721d0dcd2dc
2015-05-23 19:53:48 +00:00
drh
3183ac590d Earlier detection of a specific kind of corruption in the balance_nonroot()
routine.

FossilOrigin-Name: ee6dc9913a8733891576e6e298241f7440209c5e
2015-05-23 19:29:08 +00:00
drh
3c46b7f7fd Minor documentation improvements. No changes to code.
FossilOrigin-Name: e446d9ce0049b8ce0fd4f03205a0c32776fc76cd
2015-05-23 02:44:00 +00:00
drh
c19bc9b6b0 Improved error messages in fuzzershell when unable to open the database.
FossilOrigin-Name: c404fcace83613a50015f15097b7f28123c221c3
2015-05-22 23:50:19 +00:00
drh
f9def06160 Fix a bug in fuzzershell caused by an uninitialized local variable.
FossilOrigin-Name: 745deab87adc378a5376aaa9451fb9485bc2f4c4
2015-05-22 23:45:56 +00:00
drh
cea1dc2798 Fix another bad assert() in btree - one that can be false on a corrupt database
file.

FossilOrigin-Name: 89f0bbfde4d86a7b15e93aab9c487b4355c6fb2d
2015-05-22 23:39:29 +00:00
drh
18070e08c5 Fix incorrect validation of the size of the BLOB returned by a geometry
function on the RHS of a MATCH operator in RTree.  The old code worked for
64-bit systems (by chance) but fails on 32-bit.

FossilOrigin-Name: 10cc44f5a63e6cadf6940bb7310a177ee7fa6ee2
2015-05-22 23:17:28 +00:00