]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Thu, 24 Jan 2019 16:51:06 +0000 (16:51 +0000)]
While PRAGME full_column_names is off (the default) do not make changes to
the short_column_names pragma when computing the column names for subqueries.
FossilOrigin-Name:
718ead555b09892f3cbaddb1775ede4acfa4a2986d69f15da1270c433e5dd578
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
dan [Sat, 19 Jan 2019 15:27:09 +0000 (15:27 +0000)]
Remove a broken assert() triggered by a "PRAGMA max_page_count = N"
invocation, where N is larger than the number of pages in the database image,
but smaller than the number of pages in the database file.
FossilOrigin-Name:
7cd56cad5efead5097e9918c87313bb46e583fe62bae0df1be60e10117e2c3cb
dan [Sat, 19 Jan 2019 14:07:37 +0000 (14:07 +0000)]
Fix a problem with using ALTER TABLE to rename a table or column when the
database schema contains a trigger or view that itself contains an expression
"<column> AND 0".
FossilOrigin-Name:
908ff7fffa302255a74e2334ca3a1779ed43acb0268fce5a83a56fd16794dc88
dan [Fri, 18 Jan 2019 21:17:08 +0000 (21:17 +0000)]
dan [Fri, 18 Jan 2019 21:12:32 +0000 (21:12 +0000)]
Fix a crash in the fts5vocab module caused by including a "term < NULL" term
in a WHERE clause.
FossilOrigin-Name:
9e717c4377c0116a5d36815fbc30f8b8803f14770d30be361feb27cc5b5b537b
dan [Fri, 18 Jan 2019 21:03:15 +0000 (21:03 +0000)]
Fix an infinite loop caused by a corrupt database in fts3. Also an undefined
left-shift in fts5.
FossilOrigin-Name:
55c5d72af9510e2f27c33544d804a58d4282b0efb384ead38484129ce91b574f
dan [Fri, 18 Jan 2019 20:15:02 +0000 (20:15 +0000)]
Avoid passing a NULL pointer to memcpy in fts5, even if the database is corrupt.
FossilOrigin-Name:
acccc9808f52009b2c7794770c8b7efe2ce861fa184d32e287e7114c74e2b522
drh [Fri, 18 Jan 2019 19:33:56 +0000 (19:33 +0000)]
Typecasts added to the GeoPoly extension to avoid harmless UBSAN warnings.
FossilOrigin-Name:
a1f6a093ac4a2de8c5b02c30fe57e09770460fd5bdddfe9c7a9a24fb83a6b491
dan [Fri, 18 Jan 2019 19:26:48 +0000 (19:26 +0000)]
Fix problems causing undefined left-shift operations in the fts3 snippet()
function.
FossilOrigin-Name:
b90dbaed3092236e97f9796fa63989a3648060e16189e1267c430f4a7e799fac
drh [Fri, 18 Jan 2019 18:52:17 +0000 (18:52 +0000)]
Avoid integer overflow when computing the array of a bounding box with
the rtree_i32 virtual table.
FossilOrigin-Name:
b352f1590d20a574b0681e011ececcf4f41fa5b157503d330e03939404aca0e9
drh [Fri, 18 Jan 2019 17:53:50 +0000 (17:53 +0000)]
Handle oversize floating point values carefully when converting to integers
for the '%' binary operator.
FossilOrigin-Name:
048add13fc10e69ae504a49c4663612381d928b2cf1f9cdab4ff34bd40f601a3
dan [Fri, 18 Jan 2019 16:06:18 +0000 (16:06 +0000)]
Fix a fairly obscure problem allowing an "ALTER TABLE RENAME col TO ..." statement to modify the schema in such a way as to break a reference within a trigger program.
FossilOrigin-Name:
64bec9e6214c6932fab5a3fb8c569ae14cd2d603bd0f8b26104815c3bb9d396a
drh [Fri, 18 Jan 2019 14:53:15 +0000 (14:53 +0000)]
Use the full 64-bit integer value in the argument to randomblob().
FossilOrigin-Name:
05df5f7aeaf2132810452e8871132d1e66650a841991cb2a9ce32f2d03e20bf4
drh [Thu, 17 Jan 2019 20:19:35 +0000 (20:19 +0000)]
Disable the xfer-optimization if the two tables have the same root page
due to schema corruption.
FossilOrigin-Name:
f31b3bd2a6a8aa35a6454f37f3a4b4595e2ad74256cd180439019ab4c6c2059e
dan [Thu, 17 Jan 2019 20:06:56 +0000 (20:06 +0000)]
Fix another corruption related crash in fts5.
FossilOrigin-Name:
4538d9afe4e6360e20c7b474e77314e5ad293453e1edbe356bf6ea84c05857ee
drh [Thu, 17 Jan 2019 19:33:16 +0000 (19:33 +0000)]
Add the SQLITE_ENABLE_EARLY_CURSOR_CLOSE compile-time option which causes
read cursors to be closed after their usefulness ends during a two-pass
UPDATE.
FossilOrigin-Name:
7def6c8edd85f19ee09038e01541f75b1f71ca39b9fb782b8f0fcac89207c353
dan [Thu, 17 Jan 2019 19:11:10 +0000 (19:11 +0000)]
Fix a buffer overwrite that could occur when running an fts5 prefix query
against a corrupt database.
FossilOrigin-Name:
3910b5639d5c96d1840d4feeea64d3a55073531b7365a4e75d9cda6f119f3cfc
dan [Thu, 17 Jan 2019 17:39:15 +0000 (17:39 +0000)]
Fix problems with joining two or more fts5_vocab tables that access the same
underlying fts5 table.
FossilOrigin-Name:
49956395e14b61f6bf839e59ae7dd95eb32ebf32f3d16388844de6621b9c2d98
drh [Thu, 17 Jan 2019 15:40:41 +0000 (15:40 +0000)]
Revamp the SrcList allocator routines to be methods of Parse instead of
being methods of the "sqlite3" object, so that they can leave better error
messages when the SrcList object grows too large.
FossilOrigin-Name:
df08d472b090b212fb77ce2aae0e1ffe79ae5db4b1accf55e6fdb18e8b0a7098
drh [Thu, 17 Jan 2019 14:34:46 +0000 (14:34 +0000)]
Limit the size of SrcList objects to 200 entries (compile-time configurable
using -DSQLITE_MAX_SRCLIST=n). The maximum number of tables in a join has
always been 64, so this is not a real constraint on capability. Limiting the
size of a SrcList prevents DOS attacks (discovered by OSSFuzz) using crazy
nexted CTE joins.
FossilOrigin-Name:
7cac614d5df55eb092b863163483b6782b942b21bd15fd787576fef5619fa849
drh [Thu, 17 Jan 2019 04:40:04 +0000 (04:40 +0000)]
Fix a corner-case for the logic that cause an insert of a NULL into an
INTEGER PRIMARY KEY column to be converted into a valid integer key,
when the NULL results from a CASE expression that lacks an ELSE clause.
FossilOrigin-Name:
9a425051e7ba59e797636f5cf32b5f6efafdb21c8d5300e099b8008b829c1439
drh [Thu, 17 Jan 2019 03:43:38 +0000 (03:43 +0000)]
Ensure that the variable-length integer decoder in FTS3 never tries to
left-shift a negative number.
FossilOrigin-Name:
10ffc1fe006a1766ff2f1ffc6129786afb86b6b1f8d3a17334e8ecb838d37b9c
drh [Thu, 17 Jan 2019 01:06:00 +0000 (01:06 +0000)]
dan [Wed, 16 Jan 2019 20:48:13 +0000 (20:48 +0000)]
dan [Wed, 16 Jan 2019 19:44:09 +0000 (19:44 +0000)]
Fix a problem in the fts3 matchinfo() function with corrupt database handling.
FossilOrigin-Name:
24ed5fb6aea30b098d2faf3cf9d638933e518657217e903239ffaa1e25d34f66
drh [Wed, 16 Jan 2019 19:26:31 +0000 (19:26 +0000)]
Fix a problem in the code generator for sorting results with SRT_EphemTab
and a LIMIT clause.
FossilOrigin-Name:
49fcde2f1f981ac0c75728bed3444e7c1d3167311db282d3375c96ce090b2210
dan [Wed, 16 Jan 2019 14:58:37 +0000 (14:58 +0000)]
Fix a problem with renaming a column that is used as part of an ORDER BY on a
compound SELECT within a database view or trigger.
FossilOrigin-Name:
b4b5741366578b25ec6e4c415ab8239215e53b1c900be613575f40a826cfccc9
dan [Wed, 16 Jan 2019 12:05:22 +0000 (12:05 +0000)]
Avoid a dangling pointer comparison when renaming a table that has a trigger
that itself contains a window function with an (illegal) column reference in a
FOLLOWING expression.
FossilOrigin-Name:
d45bee36f2c1091a2d32c16ca8921bf4e7c9e40c46d0a36fbcb179ecfafcfbf0
dan [Wed, 16 Jan 2019 11:38:06 +0000 (11:38 +0000)]
Fix a memory leak that could occur in fts3 when handling a corrupt database.
FossilOrigin-Name:
65cebb06a0afcbcb4157c3d518a62ed188b1e90d9e9b69d88fece484bcb6e380
dan [Tue, 15 Jan 2019 20:51:35 +0000 (20:51 +0000)]
Fix a problem with ALTER TABLE and vector assignments in UPDATE statements
within triggers.
FossilOrigin-Name:
cc6cd7531fee39b4c2a9f522f1089c1d79254a9e25acae59468322031f94c25a
dan [Tue, 15 Jan 2019 18:14:27 +0000 (18:14 +0000)]
Handle SQL NULL values without crashing in the fts5 snippet() and highlight()
functions.
FossilOrigin-Name:
a5e9cc794f17566160c4b2b5791601a744a21ace987b19ff8a5816fd78dce56a
dan [Tue, 15 Jan 2019 16:14:31 +0000 (16:14 +0000)]
Fix a buffer overread in fts3 caused by a corrupt record.
FossilOrigin-Name:
e54efd60c20bbfc5d70ddb9e1dd6ffb68cbbcfa57b4f07cb104767ef08c1a559
dan [Tue, 15 Jan 2019 15:18:58 +0000 (15:18 +0000)]
Have fts5 reject attempts to insert a non-integer, non-null value into a rowid
column with SQLITE_MISMATCH.
FossilOrigin-Name:
4a9483f81e9ca1aa41d6ca33cb3171370418ccc71fdee9741bbf6f694bf4fbaa
drh [Tue, 15 Jan 2019 14:44:23 +0000 (14:44 +0000)]
Fix a harmless memory leak in the Lemon parser generator utility program.
FossilOrigin-Name:
1caff0fb0b2051e205e7a8cfd5dadf92680c52a88a441ded95b1ea6542db5f83
dan [Tue, 15 Jan 2019 14:31:01 +0000 (14:31 +0000)]
Fix a problem triggered by DELETE statements with WHERE clauses that use the
OR-optimization on some virtual tables.
FossilOrigin-Name:
ecf5caa7e9825a8b03d15ee525ec68be78c55926ddfaca27a040a7614caf0e85
dan [Mon, 14 Jan 2019 20:44:00 +0000 (20:44 +0000)]
Add scalar function "prefix_length()" to ext/misc/prefixes.c.
FossilOrigin-Name:
0bf1550507d9d3c8a41f8a50db3a59bf808f0a4e24637dc0905d35579305eca7
dan [Mon, 14 Jan 2019 19:13:30 +0000 (19:13 +0000)]
Fix a problem causing some Tcl test cases to fail with errors like "expected: [<multiline-whitespace>], got: []".
FossilOrigin-Name:
11b8a4cba747ca214fe3506caa3b711c87be4d55412754e673cc0603afefb086
drh [Mon, 14 Jan 2019 16:16:30 +0000 (16:16 +0000)]
Add the "prefixes" table-valued function in the ext/misc folder.
FossilOrigin-Name:
f0fd2163fc23a555ef03af43294a14fcabae6921f52e64c979286c745b4f6218
dan [Mon, 14 Jan 2019 15:35:15 +0000 (15:35 +0000)]
Fix a problem causing a crash if an fts5vocab table was created to query an
fts3/4 FTS index.
FossilOrigin-Name:
9cd64ce453e4435d80117b8610c22a0a4b53cd6e84b39815e70e684f6b0295c8
dan [Mon, 14 Jan 2019 15:09:00 +0000 (15:09 +0000)]
Fix a problem with querying a corrupt fts3 database.
FossilOrigin-Name:
65e50706a017751d72d0f9c7f575955194977decd0acf13aaca90c3cb925f20e
drh [Mon, 14 Jan 2019 13:32:15 +0000 (13:32 +0000)]
When parsing a corrupt record using sqlite3VdbeRecordUnpack(), make sure
that the resulting UnpackedRecord object is completely initialized, to avoid
(harmless) MSAN warnings.
FossilOrigin-Name:
ddc3697efd61830fad55c6bf7f9115f4a7f53e08838eba5a82e1406c7a721665
dan [Mon, 14 Jan 2019 11:56:13 +0000 (11:56 +0000)]
Have fts3 ignore empty sets of parenthesis if built with
SQLITE_ENABLE_FTS3_PARENTHESIS.
FossilOrigin-Name:
c93c6b45a317c40eb5c0abb6620d21f5821a601632c791e11e5ce62e039eccda
drh [Mon, 14 Jan 2019 05:48:10 +0000 (05:48 +0000)]
Avoid reading off the front of a page buffer when balancing a corrupt
btree page.
FossilOrigin-Name:
cb50509020d952fa9efed8df7fa08b07b71ae9bdbdefea216b6e660863291039
drh [Sun, 13 Jan 2019 20:23:34 +0000 (20:23 +0000)]
In dbfuzz2, avoid using a malloc in the LLVMFuzzerInitialize() initializer
routine, so that no memory leaks are reported. Also, show the version of
SQLite being used when the -v option is on.
FossilOrigin-Name:
824f93246988ffa213bbd41a7de08886999b1a8ae00fdf6b9767acb6e3ec6a1f
drh [Sun, 13 Jan 2019 20:17:52 +0000 (20:17 +0000)]
Relax the minimum size database file constraint on the dbtotxt utility program.
FossilOrigin-Name:
97e723d746eeb2159f5bf1701532271ac6a4620879c82d496f4499c178b64479
drh [Sun, 13 Jan 2019 20:17:21 +0000 (20:17 +0000)]
Improved detection of database corruption while balancing pages from an
auto_vacuum database with overflow pages. Test cases in TH3.
FossilOrigin-Name:
35f04235c477501390acea126d07a730d81d03cdf7abcd82d861e397b3f75b0f
drh [Sun, 13 Jan 2019 00:58:57 +0000 (00:58 +0000)]
Move a local variable declaration into the outermost scope in which it
is used. This fixes an ASAN warning.
FossilOrigin-Name:
ac3b6021d9437ab1c027850d321f0a3e575b008763d8d515e2347f7d4e7c294b
drh [Sat, 12 Jan 2019 21:30:26 +0000 (21:30 +0000)]
Prevent unsigned 32-bit integer overflow from leading to a buffer overread
inside of an assert(). The problem fixed here is no reachable in production
code.
FossilOrigin-Name:
0f850a25d67a752fe1e9059c0c3f78e00c222113e556a7605fd3c50817b573cb
dan [Sat, 12 Jan 2019 20:55:36 +0000 (20:55 +0000)]
Fix another problem with handling corrupt records in fts5_decode().
FossilOrigin-Name:
726e398b9ddc15ea1b67c40e2a12ddf5d04428a866699588c5fa1af75af846e1
drh [Sat, 12 Jan 2019 16:19:23 +0000 (16:19 +0000)]
Fix an off-by-one error on a Goto in the code generator, that only
causes problems for a REPLACE on an INTEGER PRIMARY KEY in non-debug
builds. Test case in TH3.
FossilOrigin-Name:
e35eb8776ed539afe1d5db099470ab1124d8dd2db73ee5db7c811f8df9a9576e
dan [Sat, 12 Jan 2019 14:58:35 +0000 (14:58 +0000)]
Fix a problem with corrupt database handling in the fts3 matchinfo() function.
FossilOrigin-Name:
703646b1b5c84d550fe0d74e399c0eeb729da1d263e4693320f69e6509678985
drh [Sat, 12 Jan 2019 00:45:20 +0000 (00:45 +0000)]
Improved detection of shadow table corruption in the fts5_decode() SQL function.
FossilOrigin-Name:
b74e5f3f3057ee7a98ebcb14ca0751048eacbec8fca3e11e241883029a57ecdf
drh [Sat, 12 Jan 2019 00:12:33 +0000 (00:12 +0000)]
Improved shadow table corruption detection in the matchinfo() function of FTS3.
FossilOrigin-Name:
567be3bb1e8b6477f3bf1c7b4cd6ec066fba69d0dcf8785632e244ce25db639f
drh [Sat, 12 Jan 2019 00:07:48 +0000 (00:07 +0000)]
Indicate that the database may be corrupt in the fts3corrupt4.test test script.
FossilOrigin-Name:
473626d5579dd19023abccaf7c1822ac0c883a0b98904837ea096fa16e4f41c4
drh [Fri, 11 Jan 2019 23:08:56 +0000 (23:08 +0000)]
dan [Fri, 11 Jan 2019 21:34:25 +0000 (21:34 +0000)]
Fix a segfault in fts3 prompted by a corrupted database.
FossilOrigin-Name:
2d7b1d1d41ff69d5465fcb861420816ecb066c25a9015eefdab5fae15a2e1c9f
dan [Fri, 11 Jan 2019 19:27:55 +0000 (19:27 +0000)]
Fix another problem with corrupt databases in fts5.
FossilOrigin-Name:
9bf811ea89a133d481a86407683a7518e909eccb7aa3aa02f7932bdb33387572
dan [Fri, 11 Jan 2019 17:41:23 +0000 (17:41 +0000)]
Fix a problem handling a negative value in the "number-of-pages" database
header field. Also a problem with running "REINDEX tbl" against a virtual
table for which the SQL passed to sqlite3_declare_vtab() contains PRIMARY KEY
or UNIQUE constraints.
FossilOrigin-Name:
556dd8922f65af93084ee725c638b8dc696b611dd508c212a3b507d6ca474031
drh [Fri, 11 Jan 2019 17:20:25 +0000 (17:20 +0000)]
Improved detection and reporting of errors in the readfile() extension SQL
function.
FossilOrigin-Name:
d2f0b5a483869d39f5c5814c9d6df3d3b8a46d582b4dcf0cf11e23b707c4213e
drh [Fri, 11 Jan 2019 17:19:59 +0000 (17:19 +0000)]
Omit errors about missing SAVEPOINTs when aborting the .archive command
in the CLI.
FossilOrigin-Name:
2a47387ba6aa3c294607b7641aa1c4cf70a7b27a861e1098c2f79a38e5b7036a
drh [Fri, 11 Jan 2019 16:44:16 +0000 (16:44 +0000)]
Improved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip().
FossilOrigin-Name:
fa47f4c6589c431cf678560ac33dea6b695052012bea2096b2c92869ed51c688
drh [Fri, 11 Jan 2019 14:46:44 +0000 (14:46 +0000)]
Fix PRAGMA integrity_check so that it does not cancel the PRAGMA vdbe_debug
setting.
FossilOrigin-Name:
aaa3a19f8cf5ba7003634e4610abc7832354af91d7c7f65469218678f66bcd46
drh [Fri, 11 Jan 2019 14:38:47 +0000 (14:38 +0000)]
Add the --vdbe-debug command-line option to dbfuzz2.
FossilOrigin-Name:
599b4df43c64ce295517c804b6bb4c3ab77d77e0ba585dc0657274f55489a3b1
drh [Fri, 11 Jan 2019 14:22:33 +0000 (14:22 +0000)]
Add the "dbfuzz2" target to main.mk. Remove an unused local variable
from dbfuzz2.c.
FossilOrigin-Name:
05c7609cfd02f49114876267d7090f4e0ea2467f3aa7c65019c5986ec8f60a87
drh [Fri, 11 Jan 2019 13:32:23 +0000 (13:32 +0000)]
The keywords TRUE and FALSE should only act as boolean literal values if
unquoted.
FossilOrigin-Name:
5547f39de993c708f72301ef25df190a2f007e0c4253799bdd9e86bb1ae41777
drh [Fri, 11 Jan 2019 13:03:06 +0000 (13:03 +0000)]
Separate makefile targets for "dbfuzz2", "dbfuzz2-asan", and "dbfuzz2-msan".
FossilOrigin-Name:
ea119641a7edcd0e1ec14371d93e35f860971888bd98cb0019253358a2ef123b
dan [Thu, 10 Jan 2019 19:26:52 +0000 (19:26 +0000)]
Fix a memory leak in fts5 that could occur if scalar function fts5_decode()
was passed a corrupt record.
FossilOrigin-Name:
240f1c0c92cad8a1c19438b38489aedb831f62a4603c53f22367e876d8f644ff
dan [Thu, 10 Jan 2019 18:35:09 +0000 (18:35 +0000)]
dan [Thu, 10 Jan 2019 17:08:20 +0000 (17:08 +0000)]
Avoid use-after-free and double-free errors that could occur if an fts5 table
is modified in certain ways while there are active cursors.
FossilOrigin-Name:
3291b2a6fe6f38ae91b933e5cd2bf7d97432374b4fb1fccd92b4bd759b02ee06
dan [Thu, 10 Jan 2019 15:17:32 +0000 (15:17 +0000)]
Fix further problems with fts5 handling corrupt databases.
FossilOrigin-Name:
83c467d7af63bd2e7800aff4fe9b09dbd75557460b75a9e07205dfae7e28312c