Commit Graph

31665 Commits

Author SHA1 Message Date
drh fa5d2efbfc Remove the untested and undocumented "scrub" utility program. It was written
in 2016, but made obsolete by the VACUUM INTO command in 2019.

FossilOrigin-Name: 20c458172e0b09f7ada7f8cb8be95450c3988e620cbf6f174470bf8e78dcfbf0
2026-05-30 10:15:58 +00:00
drh c22fe7a31c Be sure to do floating-point to text conversions in JSON to the full
17-digits.

FossilOrigin-Name: 9498dade8754909d6fadc8cdff44dafc7770d53a1984ba27a00317ecd7e2f3dd
2026-05-29 23:17:09 +00:00
drh a15c394233 Fix potential integer overflow in btree overflow page cache computation.
FossilOrigin-Name: 093e23814e35f0cd0a4bded29b79ddecd7835626d9fe627bfbf4eb138403277f
2026-05-28 10:18:42 +00:00
drh d38b6c0a19 Fix a potential 1-byte overread in sqlite3changeset_invert() when
processing a corrupt buffer.

FossilOrigin-Name: 69554ec4e8354e8573071bc423e2dbd0059058388481be3e76fcb7c0fc1ff467
2026-05-26 15:09:07 +00:00
drh 600eb440c2 Fix a 32-bit integer overflow in sqlite3changegroup_change_blob() that
could lead to a buffer overwrite.

FossilOrigin-Name: f2a8ae2251561f2255c2974914293647cf304c6db79de9da957755fccaf8a8b6
2026-05-26 14:23:36 +00:00
drh e9b5658888 Fix QRF so that it works sensibly with "--wrap 1"
FossilOrigin-Name: 90eb6c22687449441824c7da5741a31e78bb78098c170382b230e851d03212c0
2026-05-26 13:57:36 +00:00
drh e44fc2ba34 Strength the defense against malicious command-line arguments in the
sqlite3_rsync utility program.

FossilOrigin-Name: a8d18783fb2dbe9683bb6f3b57ebb3cc3ccf1e5afdd5e14786abf1e4e240f51a
2026-05-26 11:46:58 +00:00
drh 18bc656fe1 Fix HTML ">" quoting in QRF.
FossilOrigin-Name: f6b35a9b5fc38245414f1bea9bc3c81b57f774711e77ab32fb91c984370ed5e9
2026-05-25 23:47:05 +00:00
drh 2e6dc01ea7 Enhance the defenses against malformed JSONB in the jsonbPayloadSize()
routine.

FossilOrigin-Name: 73dfb252f86807464642037df6ec7353b5b52d8c447837c7c4a6540ec622f29d
2026-05-25 18:53:35 +00:00
drh bf5c8d7d16 Fix a potential 1 byte overwrite that could occur when processing
a carefully crafted super-journal file.

FossilOrigin-Name: f654fa5ac938bb61d917fc33298052f5bd7a6e5e33b0539ac15cbd45bec023d3
2026-05-25 18:50:36 +00:00
drh 48aa50931a Fix a potential buffer overwrite that could occur when in fts5 when handling corrupt records.
FossilOrigin-Name: 02733fc4bc27df64b50ca5027ac94fc643146efb24bb4fdbcc70c45e1c58c919
2026-05-25 17:23:58 +00:00
drh 9bb1173b4f Fix the VFSes so that there is no 32-bit integer overflow in the
xShmMap method if the WAL file size exceeds about 25 terabytes, or
if the header is corrupted to make SQLite think that the WAL file size
is that big.

FossilOrigin-Name: 39a72dbe53c94be6784fa042cf093151eff43d67086449a4da975416adde120a
2026-05-21 15:27:55 +00:00
drh 2b6b982a77 Limit the length of inputs to the spellfix1_editdist() extension
function (not part of the standard SQLite build and rarely used)
to 99999 characters, to avoid any possibility of integer overflow.

FossilOrigin-Name: e56ac902fa4f1219d3affbe3ac9f822406a58486e456f0200a5d0f47fa4e5b43
2026-05-21 13:39:43 +00:00
drh 22bce652b3 A join constraint is not an equivalence unless both operands have the
same collation.

FossilOrigin-Name: 4247f48eec004c311cb046b1e97fbd44bc35d4b09e33c2b930dd3e1baabdb813
2026-05-21 13:06:04 +00:00
drh c4a831733f Fix a bug causing the session module to dereference a NULL pointer when applying a corrupt changeset.
FossilOrigin-Name: c813d9b777bedd58005b53d38fa3c235ca56bd57b76424cf9238c01a977a4b3d
2026-05-20 15:29:37 +00:00
drh 9f426fa956 Check-in [0d01c90bd7779192] was incomplete in that it did not remove
the incorrect assert() statement.  Fixed here.

FossilOrigin-Name: 2e9bb51ae951c421f7e5ed8e55fd6dca8b7d4b8543fd3ba3a9e9f017592c028b
2026-05-20 11:59:36 +00:00
drh 18bdf31933 Avoid returning an SQLITE_SCHEMA error from within sqlite3session_diff() if the schema has been recently modified.
FossilOrigin-Name: 15fb7ffe4be49d5242c47bef1b3cad5c923cd7f500896058db4dd257bc7b3924
2026-05-20 11:56:17 +00:00
drh 2c6e131593 Increase the patch level to 3.53.2
FossilOrigin-Name: 076d214410fc8aba38c7ada60a985adc6773e51a13add19cbd07a91375b483fd
2026-05-20 10:04:04 +00:00
drh f034bd10f0 Fix a potential buffer overread in fts5 that could occur when handling
corrupt records.  Improved detection of corrupt fts5 records.

FossilOrigin-Name: fad98805b7d73abf0cf17919397ac50757a2b888354fcf42b72640a12f32926c
2026-05-20 10:01:25 +00:00
drh 0d8e4e27b7 Silently ignore nested porter tokenizers in FTS5. Having nested porter
tokenizers is pointless, but it does use stack space unnecessarily.

FossilOrigin-Name: 8207ca671e1253135e5e36cd123fdcfb4d1f0fcf939d2c94238425fafd38c75a
2026-05-20 09:36:42 +00:00
drh dfc91368e7 Prevent integer overflow in the ICU extension.
FossilOrigin-Name: 42ef6f3f4fbe9fce3312259855df53d89e002adb0cf798c4aad074a8b7e988d5
2026-05-19 18:59:39 +00:00
drh d75e0a89ad Fix an assertion fault that can occur in RTree given a carefully
corrupted database.

FossilOrigin-Name: 0d01c90bd7779192f0541dfc43624f70241c45accf06ad43666310ec50e486d6
2026-05-19 18:47:37 +00:00
drh 0d56a90b3d Early detection of attempts to overwrite an in-use cache page due
to database corruption.

FossilOrigin-Name: c37b0d93bf750ddad0b271c5f133320f754e5af73c0b68a3d19f9276e196d667
2026-05-19 15:24:00 +00:00
drh 62587d292b Limit the size of input strings to the (disused) spellfix extension
to avoid excessive runtime and integer overflows.

FossilOrigin-Name: 2a8951b548a9408df300d238a9fea313268a30c322f0efc0b233bdd3e71a7f9d
2026-05-19 10:33:53 +00:00
drh 4e2383b65b Fix a NULL pointer dereference in the obscure (and unused) prefixes
extension, which I had forgotten even existed.

FossilOrigin-Name: 24b8ecd17f70f222c40aa91382515a7d0d0b82c882498ae0714818d672806e7f
2026-05-19 10:30:29 +00:00
drh 0b223f1027 Fix an off-by-one error in matchinfo('b') for FTS3 when there are a large
number of columns.

FossilOrigin-Name: 9bf2f4ca8f3d0cce2ac0bf3742a04a83460d309bd8864bd414946d35106014a9
2026-05-18 23:42:58 +00:00
drh 83f261d5a0 Limit the NEAR span in FTS3 to 1 billion, to avoid integer overflow.
FossilOrigin-Name: 99ea33f48d2e3b0df6561c63814750bd848577df83eae9132e9ea0d009925838
2026-05-18 20:46:08 +00:00
drh 8d36080bd5 Prevent integer overflow due to database corruption in.
fts3auxNextMethod().

FossilOrigin-Name: aebf56a78d57b06079063fd008d56d1b4637c25de8cd5e5883ed8f8f63d42cca
2026-05-18 20:30:31 +00:00
drh 1cddaab5f9 When a subquery is an argument to an SQLITE_SUBTYPE function, then set
the EP_SubtArg flag on the result-set expressions of that subquery.

FossilOrigin-Name: d496e9320393d3c249a30499bd5c7278c9282a77416b5bbef3da175714d9284c
2026-05-18 19:46:38 +00:00
drh a66d74e1de Fix the window-function variant of the json_group_object() function so
that it correctly handles NULL entries.

FossilOrigin-Name: d29d9512a72972778c374524a3cd5d52a1377bf7fb7ff34028135146d75909b8
2026-05-18 17:58:30 +00:00
drh 574d888a10 Do not attempt the OR-optimization on conjuncts that contain COLLATE
operators.

FossilOrigin-Name: 4c105d79010939bdb8cb0461c3926f80815d4f0213bc0206be76015218cb8125
2026-05-18 14:32:45 +00:00
drh a523e20bba Correction to the bugfix at [212c68249cc0e890] so that it works
for 2nd and subsequent terms of a row value.

FossilOrigin-Name: 49c9b80e52642b94f1fa0b50ecd33a96b98a8c28d1175ac2c490d22e8c1433ce
2026-05-18 12:12:06 +00:00
drh 3580d166e5 When two tables are joined by USING, the affinity and collating sequence of
the join column will be the same as one or the other of the columns in the
two tables (which are hopefully the same).

FossilOrigin-Name: 8096d548eb035afc94653303000cff2f63a4c996c1dd9bf6114c4299376088fc
2026-05-16 20:29:03 +00:00
drh 1e4ec59e3f Fix false-negatives in the sqlite3ExprCanReturnSubtype() routine having
to do with CASE, CAST, and COLLATE expressions and the "+" no-op operator.

FossilOrigin-Name: 8eb07e92cfecb6f369206f71b42edad81d7eced0ca5576a13fd754eb7db16e55
2026-05-16 17:34:27 +00:00
drh af24f5e21e Have window functions sum(), total() and avg() correctly handle the obscure case where integer overflow occurs as part of the same step that adds the first real value to the running total. Fix for forum post [forum:ec538b04ce | ec538b04ce].
FossilOrigin-Name: eb95d18aee8ffb9a2550aadbecccaf43c0a5778973386da1196a46f645e04286
2026-05-16 17:09:12 +00:00
drh 7678510ff2 Have the sqlite_dbpage module correctly handle constraints of the form "WHERE pgno=$pgno" when $pgno is an integer that cannot be represented as a signed, 32-bit value.
FossilOrigin-Name: b6ce57f807297966f305d257e616f1c88a2f25c29f622249194b19d6fa014580
2026-05-16 16:08:03 +00:00
drh 066b667313 Prevent internal-use-only SQL functions from being used inside of a CHECK
constraint added using ALTER TABLE ADD CONSTRAINT.

FossilOrigin-Name: 6cb565fe20049a48619fa3c7995de30fd9e284cfacd1652465e1f9083daf2669
2026-05-11 14:47:45 +00:00
drh e0b995b2a6 Fix potential buffer overwrite that could occur in fts5 when processing corrupt records.
FossilOrigin-Name: 061febcf41ca4872a0f407951e1507209daca7895122b909a7806c60b6e200c4
2026-05-11 12:00:19 +00:00
stephan 9db56a4935 In sqlite-config.tcl remove a reference to the platform name apple when checking for Mac platforms, relying on a check for darwin instead, analog to [b5c6cb13cff53f]. Resolves how DLL names are formulated on some systems.
FossilOrigin-Name: 640f2016ab06125ebc9756344f28093750defbedc6fad2894b0d02a12b585149
2026-05-09 15:07:27 +00:00
drh a5ce91b319 Fix upward propagation of expression properties into row-value expressions.
FossilOrigin-Name: 5e639b7f15c1de773a83eccfeea67122616a62105299af41dd7c2df2ea74102c
2026-05-09 13:57:11 +00:00
drh 0268517163 Fix a corner-case floating-point rounding problem in the generate_series()
virtual table.

FossilOrigin-Name: 931119281252ba73693770ac301010a84eb9c2b06247b17e3252271163341ab0
2026-05-09 12:08:59 +00:00
drh ccd445d76a Version 3.53.1
FossilOrigin-Name: c88b22011a54b4f6fbd149e9f8e4de77658ce58143a1af0e3785e4e6475127e9
version-3.53.1
2026-05-05 10:34:17 +00:00
stephan b14b7681f4 Fix a predicate which causes a false error in the OPFS SAHPool tests when building with SEE.
FossilOrigin-Name: 1d2f770713f9d75d0de923515f4cee8ff83e95826d77f049b7bb1fbfad042248
2026-05-05 08:12:37 +00:00
drh 55f2cf294f When using the OR-optimization on a loop created by exists-to-join,
do the early-exit logic for the whole loop, not for each individual
OR branch.

FossilOrigin-Name: b827cdcb371d07cd4ffba4d3c7b404bece43fcc808db528b94a66bf77b6aab4f
2026-05-04 18:30:02 +00:00
drh 10305aa4a4 Fix a harmless compiler warning.
FossilOrigin-Name: 9957c3b907d66ed1b8afa3b71ba0ad23b2de3ec486e6232b58166fd3a410705a
2026-05-02 13:18:40 +00:00
drh 20847aca95 Harden the recovery extension against SQL injections coming from the
sqlite_schema table of the database being recovered.

FossilOrigin-Name: 555401fe048a51ecaed3ef672723b6ef8e1340c7028c11a17731abbc399bc078
2026-05-01 13:56:19 +00:00
drh e64e95b437 Fix a crash that could occur if sqlite3_deserialize() was used to overwrite a database with an open transaction on it. Bug introduced by [fc42d31d6fca21ab] on 2018-03-07 and first released in version 3.23.0. This is not a vulnerability as an attacker that can exploit this already has the ability to execute arbitrary code. Forum post [forum:39134ba029 | 39134ba029].
FossilOrigin-Name: b7b0745d6def6b141c900884cd97f10f3afedcbfb4bd9ce2409ee2380a8602dd
2026-04-27 12:28:23 +00:00
drh 27e808ff2c Feature detection fix for uint128 on RISCV 32-bit.
FossilOrigin-Name: e3f318bf52932460890333c6dcae352ab4b0c943d7be67734649eff1ff9fc9fc
2026-04-27 12:25:36 +00:00
stephan 0e4b46a649 Increase a stack-local buffer size to resolve a test regression introduced in [ff084ae341eab5c], in which some tests fail a pattern match check if their absolute file names are too long. Resolves [forum:205f73db1b2806f5|forum post 205f73db1b2806f5].
FossilOrigin-Name: 4eeb1f74f61589f115810bd2a6876dcec9e674a2baf686f3b5b25678695aa797
2026-04-27 12:07:31 +00:00
drh 2ba7864bc4 Fix a single-byte OOB read that could occur in the session module when concatenating patchsets.
FossilOrigin-Name: 5150cf9a89aebfd7121b4742c8b359116f16d890e83b64105bb192d3d0f68971
2026-04-25 15:04:21 +00:00