]>
git.ipfire.org Git - thirdparty/sqlite.git/log
dan [Mon, 4 Feb 2019 16:42:57 +0000 (16:42 +0000)]
Do not run shmlock.test as part of the inmemory_journal permutation.
FossilOrigin-Name:
d3fea69cbb071867a90ad56ca05123ebf8e44689a92577a525a883c176c791bd
drh [Mon, 4 Feb 2019 16:36:24 +0000 (16:36 +0000)]
Update the test/fuzzdata8.db database with new interesting cases from
dbsqlfuzz.
FossilOrigin-Name:
e467e4c8fa256ddd6c26c1f21bc26289a21f18b781737eaf706bc813ed8234fa
dan [Mon, 4 Feb 2019 16:25:40 +0000 (16:25 +0000)]
Fix problems with SAVEPOINT and related commands within transactions on a corrupt database that include fts5 or some other virtual tables.
FossilOrigin-Name:
b0da6e0dd1f9a9ba7646ee6bb3c14945e570303c9a42d20fa8a653570e12c3f9
drh [Mon, 4 Feb 2019 14:53:18 +0000 (14:53 +0000)]
dan [Mon, 4 Feb 2019 14:00:20 +0000 (14:00 +0000)]
Fix another potential buffer overread in fts5.
FossilOrigin-Name:
14fba4cc5db2bc206f024bfa5dd82fffdbc7577162da2c3b15a91cc1c91f3846
dan [Mon, 4 Feb 2019 11:54:22 +0000 (11:54 +0000)]
dan [Sun, 3 Feb 2019 07:46:07 +0000 (07:46 +0000)]
Fix an assertion failure in fts3 triggered by a corrupt database.
FossilOrigin-Name:
560ebd4269fad07b8e988d070454017123593eb6762597d08e8c32d7b4fb92ac
drh [Sat, 2 Feb 2019 18:24:28 +0000 (18:24 +0000)]
drh [Sat, 2 Feb 2019 15:59:49 +0000 (15:59 +0000)]
Honor key query parameters for SEE on the URI filename for ATTACH
and VACUUM INTO.
FossilOrigin-Name:
2e01096b8933a2315e3dffcd7d0de84c744c1b4be1d909388c61f0fd636ddb99
drh [Sat, 2 Feb 2019 15:05:25 +0000 (15:05 +0000)]
Give a link to the URI Filename document in the documentation to the
various sqlite3_uri_parameter() interfaces.
FossilOrigin-Name:
69b0b2ee536fda8975f60643f7f1891db4649958aca476822ea2a632ce731992
dan [Sat, 2 Feb 2019 13:47:25 +0000 (13:47 +0000)]
Fix a buffer overread in fts5 debugging scalar function fts5_decode().
FossilOrigin-Name:
54f2399fb2a626602d405c857297f2da833f9f048cbc478f9110bed2e9bda299
mistachkin [Sat, 2 Feb 2019 01:27:45 +0000 (01:27 +0000)]
drh [Fri, 1 Feb 2019 21:08:27 +0000 (21:08 +0000)]
Slight adjustment to the printf formatter large memory allocation detector
so that it does not overestimate the amount of space needed for
oversize %d conversions.
FossilOrigin-Name:
1aee70d6de8a9b17ebb74a7cb1dad65139cde1b615dcce4d15d3a476fda8676b
drh [Fri, 1 Feb 2019 20:29:04 +0000 (20:29 +0000)]
Prevent the printf formatter from doing large memory allocations - larger
than either the size of the static buffer for interfaces like
sqlite3_snprintf(), or larger than SQLITE_LIMIT_LENGTH for interfaces that
are associated with a database connection. This helps to prevent DOS
attacks on products that let hostile sources inject arbitrary SQL. It also
helps fuzzers run faster and more effectively.
FossilOrigin-Name:
179e5d46054e5c86f53a79b7a0823d9a383da8391ad1d3c3b22645927a1e052b
drh [Fri, 1 Feb 2019 18:46:41 +0000 (18:46 +0000)]
Performance improvement in the parsing of options to %-formats in the
printf implementation.
FossilOrigin-Name:
40d8f8ae87abf928542c4e558a4c3a3eab18776a3e8db7ca1c5e5f744ca0bce3
drh [Fri, 1 Feb 2019 15:06:27 +0000 (15:06 +0000)]
Ensure that the Walker.pParse structure is initialized when walking the
source tree to gather the WINDOW clauses on a query with window functions.
FossilOrigin-Name:
4ca9d5d53d41d08fbce29f9da8cc0948df9c4c3136210af88b499cf889b5ccb8
drh [Fri, 1 Feb 2019 14:54:18 +0000 (14:54 +0000)]
drh [Fri, 1 Feb 2019 14:50:43 +0000 (14:50 +0000)]
Improve the strict enforcement of cell sizes in balancing from
check-in [
12713f320b2c1def ] so that it also works with table-btrees
in addition to index-btrees.
FossilOrigin-Name:
ef27e7a08728aa7447ae19812803ac5c4a9d80c97541014bd292485792005a3e
dan [Fri, 1 Feb 2019 14:40:44 +0000 (14:40 +0000)]
Fix an assert() in fts5 that could fail if the database is corrupt.
FossilOrigin-Name:
55f06aa3f890dc1dc5c2ed0e6777e46d609a6f9d223d1d4b5813097ce4f4e797
dan [Fri, 1 Feb 2019 13:34:00 +0000 (13:34 +0000)]
Fix another corrupt-database-handling problem in fts5.
FossilOrigin-Name:
9876ae1b802a449aacbbdd42778653edc19e29315dc627c23ab7493d6492c800
drh [Thu, 31 Jan 2019 16:09:48 +0000 (16:09 +0000)]
Remove an incorrect assert() from the deserialize in-memory database VFS.
FossilOrigin-Name:
80151d7e3b9fd84086874a1cebed024b9e14005ea2d0108cf6efcd07373fcf51
drh [Thu, 31 Jan 2019 15:38:53 +0000 (15:38 +0000)]
Add the SQLITE_CONFIG_MEMDB_MAXSIZE configuration option for configuring
the default maximum size of an in-memory database created using
sqlite3_deserialize(). This is necessary to make the interface reasonably
testable.
FossilOrigin-Name:
cb72ee0478ce98c48aae059fd5de4e36caf2b8c953e08fcb799bfd119ad46b73
dan [Thu, 31 Jan 2019 14:37:18 +0000 (14:37 +0000)]
Fix another buffer overrun that could occur when quering a corrupt database using an fts5vocab table.
FossilOrigin-Name:
b80119bd6044c0993210115732b6ae7b4b0b29c1471b0723bef24f2052c8e671
drh [Thu, 31 Jan 2019 02:42:47 +0000 (02:42 +0000)]
If the amalgamation file "sqlite3.c" is generated using the
SQLITE_ENABLE_UPDATE_DELETE_LIMIT option, but then subsequently (mis-)compiled
without that option, and then a particular syntax error could cause
a memory leak, but for this fix.
FossilOrigin-Name:
1bb17c863a269ab8b28df94b9fdaac3ee70777ccd0a30300131bf67df6722052
drh [Thu, 31 Jan 2019 01:39:01 +0000 (01:39 +0000)]
Improvements to "PRAGMA parser_trace=ON": Make it a flag pragma, and then
use the flag to show the complete SQL text at the beginning of the parse.
FossilOrigin-Name:
507c43537f00d089efb3c3020fb6e826e8f89f3efa2caaa12c5309d35dd0c22e
drh [Wed, 30 Jan 2019 19:50:07 +0000 (19:50 +0000)]
Change the error message slightly for when two or more indexes have the
same rootpage.
FossilOrigin-Name:
916c52dad414b224695d455a42af36f85dff216504c2aa67d1d2c5818cdca8d6
dan [Wed, 30 Jan 2019 19:12:13 +0000 (19:12 +0000)]
When parsing the schema, check for duplicate index root page numbers before adding the index to the schema hash table.
FossilOrigin-Name:
6b360bc0b9ad18ccda9d58d43a8388d19999432bfdf294abcf5beb44ef990cb4
dan [Wed, 30 Jan 2019 18:47:35 +0000 (18:47 +0000)]
drh [Wed, 30 Jan 2019 18:33:33 +0000 (18:33 +0000)]
Detect if two indexes of the same table share a common rootpage while
parsing the schema, and throw an error immediately.
FossilOrigin-Name:
f21c6f1343edc4ba68f9f8e68caac34da0d1c651526ecaf61c0e2d66593a555e
drh [Wed, 30 Jan 2019 16:58:04 +0000 (16:58 +0000)]
Fix an off-by-one error when parsing the names of indexes that do not have
arguments in the index_usage utility.
FossilOrigin-Name:
dc794d8f518ed46536928a77a560d46e4f9365c30a00cd108f000d8556a66c00
drh [Wed, 30 Jan 2019 15:47:38 +0000 (15:47 +0000)]
Add the --progress, --using, and -q options to the index_usage utility program.
FossilOrigin-Name:
a5e6be7cbc5d931308ddcc073c9cd6275c9711cae055d72a7c4aa71c1d15914c
drh [Wed, 30 Jan 2019 14:01:43 +0000 (14:01 +0000)]
Enhancements to the index_usage utility program.
FossilOrigin-Name:
19c739b4a8a43d894e37a99fa34838f3e3fa1fe0d019aefbc33f1d38d76af1a4
dan [Wed, 30 Jan 2019 12:15:27 +0000 (12:15 +0000)]
Fix another buffer overread in fts5 that may occur when accessing a corrupt database.
FossilOrigin-Name:
760d14374d40bcd9ce3a89771c18dc236c9728553c4747c9b7452ee7b24f4140
drh [Tue, 29 Jan 2019 16:54:31 +0000 (16:54 +0000)]
drh [Tue, 29 Jan 2019 16:47:46 +0000 (16:47 +0000)]
Load all the latest dbsqlfuzz finds into test/fuzzdata8.db.
FossilOrigin-Name:
e744d2dd93a78235e6c1d938b08232183b5ce7e355d1b7daf2199e585b03c106
drh [Tue, 29 Jan 2019 16:41:13 +0000 (16:41 +0000)]
More robust handling of corrupt database file in the rebalance operation of
the btree logic.
FossilOrigin-Name:
97704cb7d29fa7cc4ea9a6761a7844c1946d637ea2b22d287fc787ae0f63c407
dan [Tue, 29 Jan 2019 16:34:45 +0000 (16:34 +0000)]
Avoid an integer overflow in the fts5 snippet() function triggered by a corrupt database record.
FossilOrigin-Name:
7c862c4655841e1263cf548d01f5b4331685ab7d396494891cad0a5f50c63e16
dan [Tue, 29 Jan 2019 15:30:03 +0000 (15:30 +0000)]
Avoid a crash when the fts5 snippet() function (or similar) is used with a special query pattern, like '*id' or '*reads'.
FossilOrigin-Name:
9d58a15737f7379fed724749cfd5b4de5b44231870e99fc664683ad483c3e6ba
dan [Tue, 29 Jan 2019 11:42:43 +0000 (11:42 +0000)]
Fix a buffer overrun triggered by a merge operation on a corrupt fts5 database.
FossilOrigin-Name:
7ee3cd5b2cdf8db35f70400b3df58f7c421c78ae77c50f22b0ee22d5a3039429
drh [Tue, 29 Jan 2019 02:37:22 +0000 (02:37 +0000)]
Set a low limit on the length of strings and blobs in the OSSFuzz module,
in an effort to avoid timeouts when the fuzzer does things like
"randomblob(1e12)".
FossilOrigin-Name:
119d1609fa415894fdd0aa19440ca1c658bd01910838a4cfadbe0e304b033bfd
drh [Mon, 28 Jan 2019 19:06:17 +0000 (19:06 +0000)]
Fix the query planner so that it is able to use an index on a CAST expression.
FossilOrigin-Name:
2c886f3d49c9569e9f6ee28b89b57e2d4004c8972d11da0c23f7b2d2e0c9900a
drh [Mon, 28 Jan 2019 18:58:54 +0000 (18:58 +0000)]
Fix a performance regression caused by the previous commit.
FossilOrigin-Name:
c4db0ad12d4f3d2800d36404f391b325cdc4aa7f8dcea93b2d63a489d9095ad4
dan [Mon, 28 Jan 2019 18:08:59 +0000 (18:08 +0000)]
dan [Mon, 28 Jan 2019 16:50:42 +0000 (16:50 +0000)]
Fix a buffer overread in fts3 that could occur when accessing a corrupt database.
FossilOrigin-Name:
a9faf9033910927c74553e66c474d84ed3386f263cef3eec299e25d8306f410d
dan [Mon, 28 Jan 2019 13:27:25 +0000 (13:27 +0000)]
Do not assume that text parameters passed to fts4aux queries do not contain embedded nul characters.
FossilOrigin-Name:
df04859a995571cd6faf1abe088725708f35e81195760274df9e2ec9bd47f69f
drh [Mon, 28 Jan 2019 11:54:13 +0000 (11:54 +0000)]
drh [Mon, 28 Jan 2019 00:42:06 +0000 (00:42 +0000)]
Change the definition of the BtCursor.skipNext field so that it is undefined
for states CURSOR_VALID and CURSOR_INVALID.
FossilOrigin-Name:
6089d5dba73437d787259033e94a38cf1b0c87cac4a89c27e69d8239c22f496e
drh [Sun, 27 Jan 2019 19:50:56 +0000 (19:50 +0000)]
Improvements to the ".eqp trace" command in the CLI so that it ensures that
the schema has been read prior to activing the tracing feature, to avoid
cluttering the output with a trace of the schema parse.
FossilOrigin-Name:
42687d45aa1a2b2a32ddfc5711b4ae9cf76b8cfbeb20b57d6705ecaf5824fcb6
drh [Sun, 27 Jan 2019 02:45:32 +0000 (02:45 +0000)]
drh [Sun, 27 Jan 2019 02:41:34 +0000 (02:41 +0000)]
Window functions that can abort should indicate this, so that if they are
used in DML statement, a statement journal will be used.
FossilOrigin-Name:
0ea05a0eb96acb860d8af2e788e29a5ae3b161e7892ab62f1ff2f3e722c0dcb6
drh [Sun, 27 Jan 2019 01:11:40 +0000 (01:11 +0000)]
Update fuzzcheck so that with the --load-dbsql options it screens its
inputs to ensure that they are valid dbsqlfuzz cases. Add new dbsqlfuzz
finds to the test/fuzzdata8.db database.
FossilOrigin-Name:
004f7d9bbeee049c22a7e1c82c6cc0ea79a237967de3ff57686acea3060d5f45
drh [Sat, 26 Jan 2019 23:34:50 +0000 (23:34 +0000)]
Ensure that the btree cursor is correctly set up prior to backing it up
as part of a delete operation on a divider cell in an index.
FossilOrigin-Name:
a3ea1a822d3a110f4f186f2fc8550f435c8c98635d058096b7be9d4df7066b8b
dan [Sat, 26 Jan 2019 21:05:54 +0000 (21:05 +0000)]
Fix a broken assert() in fts3. Also some test script issues causing failures with builds that do not support fts3.
FossilOrigin-Name:
d59567dda231e7ffec437d5e055676cf42d791196406cdc696cafa2583eb483b
drh [Sat, 26 Jan 2019 15:40:04 +0000 (15:40 +0000)]
Add the ".eqp trace" command to the CLI when using SQLITE_DEBUG, as a
convenient shorthand for "PRAGMA vdbe_debug=ON" but with automatic indentation
feature for program listings provided by the CLI.
FossilOrigin-Name:
626502faa17b5b7a0fa36cabfd12e463eb09aec048d01c587a18d3977cf04662
drh [Fri, 25 Jan 2019 20:09:04 +0000 (20:09 +0000)]
Do not accidently truncate zeroblob values when doing an arithmetic
operation. Fix for ticket [
bb4bdb9f7f654b0bb9f34cfba ].
FossilOrigin-Name:
13f6942eb0da2d92a0830f18640ce64208bd0cd6ff6d0c97e4a4c57ac3d65ba6
drh [Fri, 25 Jan 2019 19:29:01 +0000 (19:29 +0000)]
Reinitialize debugging information on registers of a trigger prior to each
invocation of the trigger. This prevents false-positives from the
sqlite3VdbeMemAboutToChange() test logic.
FossilOrigin-Name:
98b3b97573ccb3d986d1552f97f96e15088a598945923adcac77010c1e8b7fe4
drh [Fri, 25 Jan 2019 18:17:37 +0000 (18:17 +0000)]
drh [Fri, 25 Jan 2019 18:17:03 +0000 (18:17 +0000)]
Fix the assert_fts3_nc() macro so that it works for test builds that omit
SQLITE_DEBUG.
FossilOrigin-Name:
b10df2b569e356551cf51ca179f307e4f8827413ee9feb886db1f1e0650e6c5f
drh [Fri, 25 Jan 2019 17:51:06 +0000 (17:51 +0000)]
dan [Fri, 25 Jan 2019 17:26:59 +0000 (17:26 +0000)]
Fix a segfault that could follow an OOM when querying a table that has one or more columns with default values "true" or "false".
FossilOrigin-Name:
202f9919c222ee933924c63c15ad36ec4481457b1e4d9179af14c9f284117c0c
dan [Fri, 25 Jan 2019 16:54:06 +0000 (16:54 +0000)]
Fix asan warnings in fts5 triggered by corrupt databases - passing NULL to memcmp, out-of-range left-shift values and signed integer overflow.
FossilOrigin-Name:
93f8ec146d63af13f04e337ada4fa75e9254f72b1394df09701ae12e185f27e2
dan [Fri, 25 Jan 2019 14:48:18 +0000 (14:48 +0000)]
Add an assert_fts3_nc() macro to fts3 - for assert() conditions that are only true when it is guaranteed that the fts3 database is not corrupt.
FossilOrigin-Name:
3498908cd7f3d0e35b70796537124e3da0bd99d48750ba51bcb9eba87e28ed4d
drh [Fri, 25 Jan 2019 14:23:36 +0000 (14:23 +0000)]
Extend fuzzcheck so that it can process dbsqlfuzz cases. Add a collection
of interesting dbsqlfuzz cases to the standard test suite.
FossilOrigin-Name:
e2991a7ecf5dd241c4bab7c7cadc4901043fb0c3ea1fac70b684f6d8332677f1
drh [Fri, 25 Jan 2019 14:16:01 +0000 (14:16 +0000)]
Fix the xFetch method of the "memdb" VFS (used by deserialize) so that it
is robust against corrupt database file.
FossilOrigin-Name:
2c1ef40e787a6bc355b50168527a47eb09acd30d0d88cff8336a434ad554115d
dan [Fri, 25 Jan 2019 13:42:12 +0000 (13:42 +0000)]
Fix a couple of assert() statments in btree.c that could fail with corrupt databases.
FossilOrigin-Name:
5eb5e8289fa71e5e29e081d33d4a59c64b463bf6b06d7070c05c46d77d808ad4
drh [Fri, 25 Jan 2019 13:03:38 +0000 (13:03 +0000)]
In fuzzcheck, activate vdbe_debug for dbsqlfuzz cases when using the -vvvvv
verbosity level or above.
FossilOrigin-Name:
2e6f7c2aced49824a38b3494b796a8ec73aa7a90b51159f670596df15ed1c5ab
drh [Fri, 25 Jan 2019 04:43:26 +0000 (04:43 +0000)]
Improved automatic detection of dbsqlfuzz cases in fuzzcheck.
FossilOrigin-Name:
1ef24e89c9630fd383ba32f5aefcf9c27907f27f5072f3537a1cfd75a093a8d7
drh [Fri, 25 Jan 2019 04:00:14 +0000 (04:00 +0000)]
Add the ability to process dbsqlfuzz cases in fuzzcheck and add an initial
set of interesting dbsqlfuzz cases.
FossilOrigin-Name:
fb9074ff450a67feaa62ca61d19154de26d5c8a8d147409ee6d1fbd667b2914f
dan [Thu, 24 Jan 2019 17:41:12 +0000 (17:41 +0000)]
Fix a buffer overread in fts3 that could occur in a prefix query on a corrupted database.
FossilOrigin-Name:
d0d5689371577b2861d4a9464443d055f3256f3f51d89e0388233a4cbe2601ee
dan [Thu, 24 Jan 2019 16:27:10 +0000 (16:27 +0000)]
Fix a problem with running ALTER TABLE on a schema that contains expressions of the type "col IN ()" (empty set on RHS of IN operator).
FossilOrigin-Name:
2d9cd06715092c312c8c0ec392696a0e90ed090b074e2082e0b830f1399aa941
drh [Thu, 24 Jan 2019 16:07:18 +0000 (16:07 +0000)]
Omit deprecated PRAGMAs when compiling with the -DSQLITE_OMIT_DEPRECATED option.
FossilOrigin-Name:
008112bcef561a8a3ebfb007cbef36cbc0071f547e6ebdba3d3bbb39e2c48c7a
drh [Thu, 24 Jan 2019 15:51:03 +0000 (15:51 +0000)]
Make sure the column name flags are restored correctly after an error
inside of sqlite3ResultSetOfSelect().
FossilOrigin-Name:
b1601db7adba2dccd4f90fbbe5099c801a2b0d97af087fbe82ed98d05496b38c
dan [Thu, 24 Jan 2019 15:16:17 +0000 (15:16 +0000)]
Fix a potential problem with "INSERT INTO ... SELECT * FROM" (or VACUUM) statements on a corrupted database.
FossilOrigin-Name:
db4b4c2c1e9f1adacfb1b2fedb717a4d8bb0a299c3b11835404a99fcd67bf24b
drh [Thu, 24 Jan 2019 14:16:20 +0000 (14:16 +0000)]
Change a integer variable in sqlite3VdbeRecordUnpack() to unsigned in order
to avoid any possibility of an integer overflow.
FossilOrigin-Name:
1b536f6fd8d58800042f130842f0586aaa357841ee0d1b690a9815c865d50826
drh [Thu, 24 Jan 2019 13:36:47 +0000 (13:36 +0000)]
Use memmove() instead of memcpy() in a place where buffers might overlap
if the database file is badly corrupted, to prevent warnings
from ASAN and valgrind.
FossilOrigin-Name:
65ad6c55f1ba9bc2f75afffa3adaf19f145fad7ac9a00ccce6372e9a2cc4341b
drh [Thu, 24 Jan 2019 04:44:54 +0000 (04:44 +0000)]
dan [Wed, 23 Jan 2019 20:31:56 +0000 (20:31 +0000)]
Fix an assert() in vdbemem.c that could fire if the database was corrupt.
FossilOrigin-Name:
a70958cd7d5cf750c293537856918e5789013b70f6a827f724d83559b38629c8
dan [Wed, 23 Jan 2019 19:50:46 +0000 (19:50 +0000)]
Fix a problem with renaming a table within a schema that contains a composite query that uses a column alias as an ORDER BY term.
FossilOrigin-Name:
2ca6b8f84ec07e313aa4e1c0894827401b418dcc4221e9c54c384f1c3893952a
drh [Wed, 23 Jan 2019 19:25:59 +0000 (19:25 +0000)]
Stricter enforcement of cell sizes when doing balancing operations on the
btree, in order to catch file corruption sooner.
FossilOrigin-Name:
12713f320b2c1def273dd8b7833dddaaad5331aba779d4b1ec9aa949814f38fe
dan [Wed, 23 Jan 2019 19:17:05 +0000 (19:17 +0000)]
Fix another fts5 crash that can occur if the database is corrupted.
FossilOrigin-Name:
44ce8baa47192be03c8f11777904c3c07fa5cc5c97b6d8e81572d380995ac688
dan [Wed, 23 Jan 2019 16:59:24 +0000 (16:59 +0000)]
Fix problems with sub-selects in WINDOW definitions. Also rename-column operations when the column being renamed appears in a WINDOW definition that is part of a VIEW or TRIGGER.
FossilOrigin-Name:
0387cb3add992b2028efe4f2100188d8f9fdfdcb233329857aa4b46a293cfc97
dan [Wed, 23 Jan 2019 12:19:22 +0000 (12:19 +0000)]
Fix a buffer overwrite triggered by a prefix query on a corrupt fts5 table.
FossilOrigin-Name:
1d8172a94bce2d067027685e5aa1dc8f5d5d55b5da0832ad2836f6939de68c8f
dan [Tue, 22 Jan 2019 21:17:40 +0000 (21:17 +0000)]
Fix a buffer overrun that could occur in fts5 if a prefix query is made on a corrupt database.
FossilOrigin-Name:
1abc4415648e69362061e9f9a4f2c1d419ba33801999b377650d8b9a4d2d3a7c
dan [Tue, 22 Jan 2019 20:18:29 +0000 (20:18 +0000)]
Do not run shmlock.test as part of the journaltest permutation.
FossilOrigin-Name:
5b7d0c784e6467154d9549af0163d788b69d5e5a6478a735834cdea945e7dbb7
drh [Tue, 22 Jan 2019 16:44:59 +0000 (16:44 +0000)]
Use _strdup() instead of strdup() on Windows builds of the CLI, to avoid
a compiler warning reported on the mailing list.
FossilOrigin-Name:
a7126a4f4fb4e3e25be95d673323f835252bb2b427469616046a90b2acf64071
drh [Tue, 22 Jan 2019 16:43:47 +0000 (16:43 +0000)]
Fix the SQLITE_DESERIALIZE_READONLY feature so that it does not cause
an assertion fault in the pager.
FossilOrigin-Name:
b9eccef7825c61980678599358b62bc394283124653061ce163ead0c653f481d
drh [Tue, 22 Jan 2019 16:11:31 +0000 (16:11 +0000)]
Update dbfuzz2 to set a maximum database size of 100MiB by default, but
with the new --max-db-size N option to change that limit.
FossilOrigin-Name:
21d6bb78ef2979d011b917d2d6519d7cd0009fcad83ed23ab2e9a5e02d8e51ab
drh [Tue, 22 Jan 2019 16:06:20 +0000 (16:06 +0000)]
Enhancements to deserialize: (1) Add the SQLITE_FCNTL_SIZE_LIMIT file control
to set a maximum size for an in-memory database, defaulting to
SQLITE_MEMDB_DEFAULT_MAXSIZE or 1GiB. (2) Honor the SQLITE_DESERIALIZE_READONLY
flag. (3) Enhance the TCL interface to support -maxsize N and -readonly BOOLEAN.
(4) Add the --maxsize option to the ".open" command and on the command-line for
the CLI.
FossilOrigin-Name:
30f08d58882819a69e353bcc1b6b349664bbfbe00aa1c115ba44a9fd899fcc5b
drh [Tue, 22 Jan 2019 13:45:48 +0000 (13:45 +0000)]
Make sure cursors are opened on all indexes for an UPDATE OR REPLACE
regardless of whether or not the indexes are partial or contain columns
that might need to be updated.
FossilOrigin-Name:
e148cdad35520e6684cfeba23b003f60b55f83a6bf621aff16be8aa5612cdcee
dan [Tue, 22 Jan 2019 12:21:28 +0000 (12:21 +0000)]
Fix another segfault caused by a corrupt fts3 database.
FossilOrigin-Name:
ba3b8412726548a0716c1a2d67260c3b7e31956474f4cd4ce607cf2cebc667dd
drh [Tue, 22 Jan 2019 02:34:35 +0000 (02:34 +0000)]
Ensure that a key comparison does not read a collating sequence past the
end of the KeyInfo, even if the key field of an index is corrupted by having
a string in the last column instead of the ROWID.
FossilOrigin-Name:
058a8006dceda78a894ea9446f057aa60b6d38e96506d4d91bda0ee2f9314ba3
drh [Mon, 21 Jan 2019 23:18:22 +0000 (23:18 +0000)]
Enhance the btree search routine so that it does early detection of
impossibly large keys and thereby avoids a large malloc() call.
FossilOrigin-Name:
3ecaaee69f49e43d38047b7d53b82689eba7f7d33541fcac3c32b6dc8a568458
dan [Mon, 21 Jan 2019 17:57:31 +0000 (17:57 +0000)]
Avoid deferencing a freed pointer following an OOM or SQLITE_CORRUPT error in
the fts3 xDestroy method.
FossilOrigin-Name:
505ed9a47825240979338a24044559613fbbd2a7850bdff70c7164da054ec63d
dan [Mon, 21 Jan 2019 16:12:20 +0000 (16:12 +0000)]
drh [Mon, 21 Jan 2019 16:01:17 +0000 (16:01 +0000)]
Make sure the extra bytes allocated for the saved cursor position by
check-in [
160b1e31c0f27257 ] are initialized to zero.
FossilOrigin-Name:
2737564929e86ead84a3ff6512369268198d38b46e3e02866f8ce34babc76cb9
drh [Mon, 21 Jan 2019 14:55:03 +0000 (14:55 +0000)]
drh [Mon, 21 Jan 2019 14:49:14 +0000 (14:49 +0000)]
drh [Mon, 21 Jan 2019 13:47:55 +0000 (13:47 +0000)]
Add the --max-data and --max-as options to dbfuzz2. Also cause dbfuzz2 to
show its maximum RSS size upon exit in standalone mode with the -v option.
FossilOrigin-Name:
7ce93e824a954d1e0cf8d7343e59a2660175f42bd4dac02aed8ad77644e7eb2f
drh [Sun, 20 Jan 2019 00:03:59 +0000 (00:03 +0000)]
dan [Sat, 19 Jan 2019 15:55:27 +0000 (15:55 +0000)]
Avoid a division-by-zero error in fts5 caused by a corrupt database.
FossilOrigin-Name:
928e622178bd004be52b2271ac554176aebe9d6e115ecac4e7072eccbb4262b5