]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a buffer overread in fts5 that might occur while processing a corrupt db.
authordrh <>
Fri, 28 Nov 2025 12:36:04 +0000 (12:36 +0000)
committerdrh <>
Fri, 28 Nov 2025 12:36:04 +0000 (12:36 +0000)
FossilOrigin-Name: 712e31c59254f82e62a19e41d3b6ac15391dd6e9df966cacadfa9ae79415b243

ext/fts5/fts5_index.c
ext/fts5/test/fts5corrupt3.test
manifest
manifest.uuid

index a5a37f758b1510d7e94d078a08c2640b297a3d40..7e25731ed54bfb6fa100d2fc0b2269614f2daa14 100644 (file)
@@ -2074,6 +2074,7 @@ static void fts5SegIterReverseInitPage(Fts5Index *p, Fts5SegIter *pIter){
   while( 1 ){
     u64 iDelta = 0;
 
+    if( i>=n ) break;
     if( eDetail==FTS5_DETAIL_NONE ){
       /* todo */
       if( i<n && a[i]==0 ){
index eab4c3c9130773b854dfadc6c5760325d8582cb5..20be7c45cfdafa2124157680293500b894d5b77b 100644 (file)
@@ -16124,5 +16124,367 @@ do_catchsql_test 83.1 {
   SELECT * FROM t1('R*R*R*R*R*R*R*R*') WHERE (a,b)<=(current_date,0 BETWEEN 'a'<>11 AND '') ORDER BY rowid DESC;
 } {/.*fts5: corruption found/}
 
+#-------------------------------------------------------------------------
+reset_db
+do_test 84.0 {
+  sqlite3 db {}
+  db deserialize [decode_hexdb {
+.open --hexdb
+| size 53248 pagesize 4096 filename c1a.txt.db
+| page 1 offset 0
+|      0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00   SQLite format 3.
+|     16: 10 00 01 01 00 40 20 20 00 00 00 00 00 00 00 0d   .....@  ........
+|     32: 00 00 00 02 00 00 00 01 00 00 00 09 00 00 00 04   ................
+|     48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00   ................
+|     96: 00 00 00 00 0d 0f c7 00 07 0d 92 00 0f 8d 0f 36   ...............6
+|    112: 0e cb 0e 6b 0e 0e 0d b6 0d 92 0d 92 00 00 00 00   ...k............
+|   3472: 00 00 22 08 06 17 11 11 01 31 74 61 62 6c 65 74   .........1tablet
+|   3488: 32 74 32 0d 43 52 45 41 54 45 20 54 41 42 4c 45   2t2.CREATE TABLE
+|   3504: 20 74 32 28 78 29 56 07 06 17 1f 1f 01 7d 74 61    t2(x)V.......ta
+|   3520: 62 6c 65 74 31 5f 63 6f 6e 66 69 67 74 31 5f 63   blet1_configt1_c
+|   3536: 6f 6e 66 69 67 07 43 52 45 41 54 45 20 54 41 42   onfig.CREATE TAB
+|   3552: 4c 45 20 27 74 31 5f 63 6f 6e 66 69 67 27 28 6b   LE 't1_config'(k
+|   3568: 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20 76 29    PRIMARY KEY, v)
+|   3584: 20 57 49 54 48 4f 55 54 20 52 4f 57 49 44 5b 06    WITHOUT ROWID[.
+|   3600: 07 17 21 21 01 81 01 74 61 62 6c 65 74 31 5f 64   ..!!...tablet1_d
+|   3616: 6f 63 73 69 7a 65 74 31 5f 64 6f 63 73 69 7a 65   ocsizet1_docsize
+|   3632: 06 43 52 45 41 54 45 20 54 41 42 4c 45 20 27 74   .CREATE TABLE 't
+|   3648: 31 5f 64 6f 63 73 69 7a 65 27 28 69 64 20 49 4e   1_docsize'(id IN
+|   3664: 54 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45   TEGER PRIMARY KE
+|   3680: 59 2c 20 73 7a 20 42 4c 4f 42 29 5e 05 07 17 21   Y, sz BLOB)^...!
+|   3696: 21 01 81 07 74 61 62 6c 65 74 31 5f 63 6f 6e 74   !...tablet1_cont
+|   3712: 65 6e 74 74 31 5f 63 6f 6e 74 65 6e 74 05 43 52   entt1_content.CR
+|   3728: 45 41 54 45 20 54 41 42 4c 45 20 27 74 31 5f 63   EATE TABLE 't1_c
+|   3744: 6f 6e 74 65 6e 74 27 28 69 64 20 49 4e 54 45 47   ontent'(id INTEG
+|   3760: 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c 20   ER PRIMARY KEY, 
+|   3776: 63 30 2c 20 63 31 2c 20 63 32 29 69 04 07 17 19   c0, c1, c2)i....
+|   3792: 19 01 81 2d 74 61 62 6c 65 74 31 5f 69 64 78 74   ...-tablet1_idxt
+|   3808: 31 5f 69 64 78 04 43 52 45 41 54 45 20 54 41 42   1_idx.CREATE TAB
+|   3824: 4c 45 20 27 74 31 5f 69 64 78 27 28 73 65 67 69   LE 't1_idx'(segi
+|   3840: 64 2c 20 74 65 72 6d 2c 20 70 67 6e 6f 2c 20 50   d, term, pgno, P
+|   3856: 52 49 4d 41 52 59 20 4b 45 59 28 73 65 67 69 64   RIMARY KEY(segid
+|   3872: 2c 20 74 65 72 6d 29 29 20 57 49 54 48 4f 55 54   , term)) WITHOUT
+|   3888: 20 52 4f 57 49 44 55 03 07 17 1b 1b 01 81 01 74    ROWIDU........t
+|   3904: 61 62 6c 65 74 31 5f 64 61 74 61 74 31 5f 64 61   ablet1_datat1_da
+|   3920: 74 61 03 43 52 45 41 54 45 20 54 41 42 4c 45 20   ta.CREATE TABLE 
+|   3936: 27 74 31 5f 64 61 74 61 27 28 69 64 20 49 4e 54   't1_data'(id INT
+|   3952: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59   EGER PRIMARY KEY
+|   3968: 2c 20 62 6c 6f 63 6b 20 42 4c 4f 42 29 38 02 06   , block BLOB)8..
+|   3984: 17 11 11 08 5f 74 61 62 6c 65 74 31 74 31 43 52   ...._tablet1t1CR
+|   4000: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42   EATE VIRTUAL TAB
+|   4016: 4c 45 20 74 31 20 55 53 49 4e 47 20 66 74 73 35   LE t1 USING fts5
+|   4032: 28 61 2c 62 2c 63 29 00 00 00 39 00 00 00 00 00   (a,b,c)...9.....
+| page 3 offset 8192
+|      0: 05 00 00 00 02 0f f1 00 00 00 00 0c 0f fb 0f f1   ................
+|   4064: 00 00 0b 01 03 00 1c 81 3a 84 5e 81 3a 81 3a 0a   ........:.^.:.:.
+|   4080: 0a 00 00 00 0b 84 80 80 80 80 01 00 00 00 0a 0a   ................
+| page 4 offset 12288
+|      0: 0a 00 00 00 01 0f fa 00 0f fa 00 00 00 00 00 00   ................
+|   4080: 00 00 00 00 00 00 00 00 00 00 05 04 09 0c 01 02   ................
+| page 7 offset 24576
+|      0: 0a 00 00 00 01 0f f4 00 0f f4 00 00 00 00 00 00   ................
+|   4080: 00 00 00 00 0b 03 1b 01 76 65 72 73 69 6f 6e 04   ........version.
+| page 10 offset 36864
+|      0: 0d 00 00 00 02 0f e2 00 0f e2 0f ef 00 00 00 00   ................
+|   4064: 00 00 0b 01 03 00 1c 81 3a 84 5e 81 3a 81 3a 0f   ........:.^.:.:.
+|   4080: 0a 03 00 24 00 00 00 00 01 01 02 00 01 01 01 09   ...$............
+| page 11 offset 40960
+|      0: 0d 00 00 00 01 00 22 00 00 22 00 00 00 00 00 00   ................
+|     32: 00 00 9f 56 84 80 80 80 80 01 04 00 bf 30 00 00   ...V.........0..
+|     48: 0f 58 02 30 30 19 02 05 01 02 05 01 02 05 16 02   .X.00...........
+|     64: 05 01 02 05 01 02 05 61 02 05 01 02 05 01 02 05   .......a........
+|     80: 13 02 05 01 02 05 01 02 05 0d 02 03 01 02 03 01   ................
+|     96: 02 03 02 09 78 66 66 66 66 66 66 66 65 81 17 02   ....xfffffffe...
+|    112: 05 01 02 05 01 02 05 01 01 31 04 02 04 01 02 04   .........1......
+|    128: 01 02 04 01 02 05 01 02 05 01 02 05 0d 02 06 01   ................
+|    144: 02 06 01 02 06 02 01 30 79 02 04 01 02 04 01 02   .......0y.......
+|    160: 04 03 02 30 30 2b 02 05 01 02 05 01 02 05 58 02   ...00+........X.
+|    176: 05 01 02 05 01 02 05 01 02 05 01 02 05 01 02 05   ................
+|    192: 16 02 05 01 02 05 01 02 05 05 06 30 30 30 30 30   ...........00000
+|    208: 30 81 0b 02 04 01 02 04 01 02 04 10 02 05 01 02   0...............
+|    224: 05 01 02 05 03 02 32 34 76 02 05 01 02 05 01 02   ......24v.......
+|    240: 05 02 01 38 07 02 04 01 02 04 01 02 04 01 01 32   ...8...........2
+|    256: 28 02 04 01 02 04 01 02 04 04 02 05 01 02 05 01   (...............
+|    272: 02 05 02 01 30 1f 02 05 01 02 05 01 02 05 03 02   ....0...........
+|    288: 30 30 10 02 05 01 02 05 01 02 05 6a 02 04 01 02   00.........j....
+|    304: 04 01 02 04 02 08 35 30 30 30 30 30 30 30 81 26   ......50000000.&
+|    320: 02 05 01 02 05 01 02 05 01 01 33 07 02 06 01 02   ..........3.....
+|    336: 06 01 02 06 81 2c 02 04 01 02 04 01 02 04 02 04   .....,..........
+|    352: 32 37 36 36 81 23 02 05 01 02 05 01 02 05 01 01   2766.#..........
+|    368: 34 13 02 05 01 02 05 01 02 05 02 03 30 39 36 1c   4...........096.
+|    384: 02 05 01 02 05 01 02 05 07 02 05 01 02 05 01 02   ................
+|    400: 05 01 03 35 30 30 7f 02 05 01 02 05 01 02 05 04   ...500..........
+|    416: 02 30 30 81 0e 02 06 01 02 06 01 02 06 06 03 30   .00............0
+|    432: 30 30 81 11 02 04 01 02 04 01 02 04 01 05 36 35   00............65
+|    448: 35 33 36 81 1a 02 05 01 02 05 01 02 05 01 04 38   536............8
+|    464: 31 39 32 81 02 02 06 01 02 06 01 02 06 01 05 61   192............a
+|    480: 6c 6c 6f 77 01 02 02 01 02 02 01 02 02 02 02 72   llow...........r
+|    496: 67 81 08 02 04 01 02 04 01 02 04 02 05 74 6f 6d   g............tom
+|    512: 69 63 04 02 02 01 02 02 01 02 02 03 06 74 61 63   ic...........tac
+|    528: 68 65 64 79 02 03 01 02 03 01 02 03 02 0d 75 74   hedy..........ut
+|    544: 6f 63 68 65 63 6b 70 6f 69 6e 74 2b 02 04 01 02   ocheckpoint+....
+|    560: 04 01 02 04 05 06 76 61 63 75 75 6d 0d 02 03 01   ......vacuum....
+|    576: 02 03 01 02 03 01 06 62 69 6e 61 72 79 03 06 01   .......binary...
+|    592: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|    608: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|    624: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|    640: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|    656: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|    672: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|    688: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|    704: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|    720: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|    736: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|    752: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|    768: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|    784: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|    800: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|    816: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|    832: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|    848: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|    864: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|    880: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|    896: 01 02 02 02 07 79 74 65 63 6f 64 65 37 02 03 01   .....ytecode7...
+|    912: 02 03 01 02 03 01 05 63 61 63 68 65 10 02 03 01   .......cache....
+|    928: 02 03 01 01 03 02 04 6c 61 6e 67 07 02 03 01 02   .......lang.....
+|    944: 03 01 02 03 02 05 6f 6c 75 6d 6e 7c 02 03 01 02   ......olumn|....
+|    960: 03 01 02 03 03 06 6d 6d 65 6e 74 73 43 02 04 01   ......mmentsC...
+|    976: 02 04 01 02 04 04 05 70 69 6c 65 72 07 02 02 01   .......piler....
+|    992: 02 02 01 02 02 05 04 6f 75 6e 64 7f 02 03 01 02   .......ound.....
+|   1008: 03 01 02 03 03 03 75 6e 74 81 17 02 04 01 02 04   ......unt.......
+|   1024: 01 02 04 02 05 75 72 73 6f 72 3a 02 03 01 02 03   .....ursor:.....
+|   1040: 01 02 03 01 06 64 62 70 61 67 65 3d 02 03 01 02   .....dbpage=....
+|   1056: 03 01 02 03 03 04 73 74 61 74 40 02 03 01 02 03   ......stat@.....
+|   1072: 01 02 03 02 04 65 62 75 67 0a 02 02 01 02 02 01   .....ebug.......
+|   1088: 02 02 03 05 66 61 75 6c 74 0d 02 02 01 02 02 01   ....fault.......
+|   1104: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1120: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   1136: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1152: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1168: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   1184: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1200: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 4f 02   ..............O.
+|   1216: 03 01 02 03 01 02 03 03 03 70 74 68 81 05 02 04   .........pth....
+|   1232: 01 02 04 01 02 04 19 02 04 01 02 04 01 02 04 02   ................
+|   1248: 05 69 72 65 63 74 34 02 02 01 02 02 01 02 02 01   .irect4.........
+|   1264: 06 65 6e 61 62 6c 65 37 02 02 01 02 02 01 02 02   .enable7........
+|   1280: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1296: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1312: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   1328: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1344: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1360: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   1376: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1392: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1408: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   1424: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1440: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1456: 02 01 02 02 02 06 78 70 6c 61 69 6e 43 02 03 01   ......xplainC...
+|   1472: 02 03 01 02 03 04 01 72 81 05 02 03 01 02 03 01   .......r........
+|   1488: 02 03 03 07 74 65 6e 73 69 6f 6e 81 2f 02 04 01   ....tension./...
+|   1504: 02 04 01 02 04 01 04 66 69 6c 65 13 02 03 01 02   .......file.....
+|   1520: 03 01 02 03 02 05 6f 72 6d 61 74 13 02 04 01 02   ......ormat.....
+|   1536: 04 01 02 04 02 03 74 73 33 46 02 03 01 02 03 01   ......ts3F......
+|   1552: 02 03 01 02 03 01 02 03 01 02 03 04 01 34 4c 02   .............4L.
+|   1568: 03 01 02 03 01 02 03 04 01 35 4f 02 03 01 02 03   .........5O.....
+|   1584: 01 02 03 02 03 75 6e 63 5e 02 05 01 02 05 01 02   .....unc^.......
+|   1600: 05 05 04 74 69 6f 6e 73 02 05 01 02 05 01 02 05   ...tions........
+|   1616: 13 02 03 01 02 03 01 02 03 09 01 73 55 02 04 01   ...........sU...
+|   1632: 02 04 01 02 04 01 07 67 65 6f 70 6f 6c 79 52 02   .......geopolyR.
+|   1648: 03 01 02 03 01 02 03 01 05 68 69 6e 74 73 3a 02   .........hints:.
+|   1664: 04 01 02 04 01 02 04 02 03 6f 6f 6b 61 02 04 01   .........ooka...
+|   1680: 02 04 01 02 04 01 02 69 6e 01 02 04 01 02 04 01   .......in.......
+|   1696: 02 04 03 04 69 74 73 7a 1f 02 04 01 02 04 01 02   ....itsz........
+|   1712: 04 03 08 74 72 69 6e 73 69 63 73 04 02 03 01 02   ...trinsics.....
+|   1728: 03 01 02 03 01 07 6a 6f 75 72 6e 61 6c 16 02 03   ......journal...
+|   1744: 01 02 03 01 02 03 01 06 6c 65 6e 67 74 68 81 0b   ........length..
+|   1760: 02 03 01 02 03 01 02 03 01 02 05 01 02 05 01 02   ................
+|   1776: 05 0d 02 04 01 02 04 01 02 04 02 03 69 6b 65 81   ............ike.
+|   1792: 0e 02 03 01 02 03 01 02 03 03 03 6d 69 74 16 02   ...........mit..
+|   1808: 05 01 02 05 01 02 05 5e 02 04 01 02 04 01 02 04   .......^........
+|   1824: 02 03 6f 61 64 81 2f 02 03 01 02 03 01 02 03 01   ..oad./.........
+|   1840: 06 6d 61 6c 6c 6f 63 76 02 02 01 02 02 01 02 02   .mallocv........
+|   1856: 3a 02 03 01 02 03 01 02 03 03 02 74 68 55 02 03   :..........thU..
+|   1872: 01 02 03 01 02 03 03 01 78 79 02 02 01 02 02 01   ........xy......
+|   1888: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1904: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   1920: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1936: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   1952: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   1968: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   1984: 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02   ................
+|   2000: 02 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02   ................
+|   2016: 01 02 02 01 02 02 01 02 02 01 02 02 01 02 02 01   ................
+|   2032: 02 02 02 05 65 6d 6f 72 79 81 11 02 03 01 02 03   ....emory.......
+|   2048: 01 02 03 04 04 73 79 73 35 58 02 03 01 02 03 01   .....sys5X......
+|   2064: 02 03 02 03 6d 61 70 19 02 03 01 02 03 01 02 03   ....map.........
+|   2080: 79 02 03 01 02 03 01 02 03 02 04 75 74 65 78 81   y..........utex.
+|   2096: 2c 02 02 01 02 02 01 02 02 01 06 6e 6f 63 61 73   ,..........nocas
+|   2112: 65 02 06 01 02 02 03 06 01 02 02 03 06 01 02 02   e...............
+|   2128: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2144: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   2160: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|   2176: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|   2192: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|   2208: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2224: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   2240: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|   2256: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|   2272: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|   2288: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2304: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   2320: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|   2336: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|   2352: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|   2368: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2384: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   2400: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|   2416: 02 02 03 06 01 02 02 03 07 72 6d 61 6c 69 7a 65   .........rmalize
+|   2432: 5b 02 03 01 02 03 01 02 03 02 05 75 6d 62 65 72   [..........umber
+|   2448: 81 23 02 04 01 02 04 01 02 04 01 06 6f 66 66 73   .#..........offs
+|   2464: 65 74 5e 02 03 01 02 03 01 02 03 02 03 6d 69 74   et^..........mit
+|   2480: 81 2c 02 03 01 02 03 01 02 03 01 02 02 01 02 02   .,..............
+|   2496: 01 02 02 02 01 70 81 26 02 04 01 02 04 01 02 04   .....p.&........
+|   2512: 02 07 76 65 72 66 6c 6f 77 34 02 03 01 02 03 01   ..verflow4......
+|   2528: 02 03 01 04 70 61 67 65 1c 02 03 01 02 03 01 02   ....page........
+|   2544: 03 64 02 04 01 02 04 01 02 04 13 02 03 01 02 03   .d..............
+|   2560: 01 02 03 01 02 03 01 02 03 01 02 03 03 09 72 65   ..............re
+|   2576: 6e 74 68 65 73 69 73 49 02 04 01 02 04 01 02 04   nthesisI........
+|   2592: 03 05 74 74 65 72 6e 81 0e 02 04 01 02 04 01 02   ..ttern.........
+|   2608: 04 02 05 63 61 63 68 65 1f 02 03 01 02 03 01 02   ...cache........
+|   2624: 03 02 08 72 65 75 70 64 61 74 65 61 02 03 01 02   ...reupdatea....
+|   2640: 03 01 02 03 01 04 72 65 61 64 34 02 04 01 02 04   ......read4.....
+|   2656: 01 02 04 03 07 63 75 72 73 69 76 65 22 02 03 01   .....cursive....
+|   2672: 02 03 01 02 03 02 04 6f 77 69 64 01 02 03 01 02   .......owid.....
+|   2688: 03 01 02 03 02 04 74 72 65 65 64 02 03 01 02 03   ......treed.....
+|   2704: 01 02 03 04 02 69 6d 01 06 01 02 02 03 06 01 02   .....im.........
+|   2720: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|   2736: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2752: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   2768: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|   2784: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|   2800: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|   2816: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2832: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   2848: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|   2864: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|   2880: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|   2896: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2912: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   2928: 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01   ................
+|   2944: 02 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02   ................
+|   2960: 02 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02   ................
+|   2976: 03 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03   ................
+|   2992: 06 01 02 02 03 06 01 02 02 03 06 01 02 02 03 06   ................
+|   3008: 01 02 02 03 06 01 02 02 03 06 01 02 02 01 0a 73   ...............s
+|   3024: 63 61 6e 73 74 61 74 75 73 70 02 04 01 02 04 01   canstatusp......
+|   3040: 02 04 02 05 65 63 74 6f 72 25 02 03 01 02 03 01   ....ector%......
+|   3056: 02 03 03 04 6c 65 63 74 7f 02 04 01 02 04 01 02   ....lect........
+|   3072: 04 03 05 73 73 69 6f 6e 67 02 03 01 02 03 01 02   ...ssiong.......
+|   3088: 03 02 03 69 7a 65 10 02 04 01 02 04 01 02 04 04   ...ize..........
+|   3104: 02 04 01 02 04 01 02 04 01 02 04 01 02 04 01 02   ................
+|   3120: 04 01 02 04 01 02 04 01 02 04 07 02 04 01 02 04   ................
+|   3136: 01 02 04 5b 02 05 01 02 05 01 02 05 10 02 04 01   ...[............
+|   3152: 02 04 01 02 04 04 02 04 01 02 04 01 02 04 02 03   ................
+|   3168: 6f 66 74 76 02 03 01 02 03 01 02 03 02 02 71 6c   oftv..........ql
+|   3184: 5e 02 04 01 02 04 01 02 04 13 02 04 01 02 04 01   ^...............
+|   3200: 02 04 28 02 03 01 02 03 01 02 03 02 04 74 61 74   ..(..........tat
+|   3216: 34 6a 02 03 01 02 03 01 02 03 03 02 6d 74 70 02   4j..........mtp.
+|   3232: 03 01 02 03 01 02 03 05 04 76 74 61 62 6d 02 03   .........vtabm..
+|   3248: 01 02 03 01 02 03 03 03 6f 72 65 81 35 02 03 01   ........ore.5...
+|   3264: 02 03 01 02 03 02 0a 79 6e 63 68 72 6f 6e 6f 75   .......ynchronou
+|   3280: 73 28 02 03 01 02 03 01 02 03 04 02 04 01 02 04   s(..............
+|   3296: 01 02 04 03 04 73 74 65 6d 81 32 02 02 01 02 02   .....stem.2.....
+|   3312: 01 02 02 01 04 74 65 6d 70 81 35 02 02 01 02 02   .....temp.5.....
+|   3328: 01 02 02 02 06 68 72 65 61 64 73 31 02 04 01 02   .....hreads1....
+|   3344: 04 01 02 04 76 02 04 01 02 04 01 02 04 08 03 61   ....v..........a
+|   3360: 66 65 81 38 02 02 01 02 02 01 02 02 02 06 72 69   fe.8..........ri
+|   3376: 67 67 65 72 81 20 02 03 01 02 03 01 02 03 08 01   gger. ..........
+|   3392: 73 22 02 04 01 02 04 01 02 04 01 07 75 6e 6b 6e   s...........unkn
+|   3408: 6f 77 6e 73 02 03 01 02 03 01 02 03 01 08 76 61   owns..........va
+|   3424: 72 69 61 62 6c 65 81 23 02 03 01 02 03 01 02 03   riable.#........
+|   3440: 02 03 64 62 65 81 26 02 03 01 02 03 01 02 03 02   ..dbe.&.........
+|   3456: 03 69 65 77 01 02 05 01 02 05 01 02 05 02 03 74   .iew...........t
+|   3472: 61 62 37 02 04 01 02 04 01 02 04 04 02 04 01 02   ab7.............
+|   3488: 04 01 02 04 01 02 04 01 02 04 01 02 04 01 03 77   ...............w
+|   3504: 61 6c 2b 02 03 01 02 03 01 02 03 01 02 03 01 02   al+.............
+|   3520: 03 01 02 03 02 05 6f 72 6b 65 72 31 02 03 01 02   ......orker1....
+|   3536: 03 01 02 03 76 02 03 01 02 03 01 02 03 01 01 78   ....v..........x
+|   3552: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3568: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3584: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3600: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3616: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3632: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3648: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3664: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3680: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3696: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3712: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3728: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3744: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3760: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3776: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3792: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3808: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3824: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3840: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3856: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3872: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3888: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3904: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3920: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3936: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3952: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3968: 06 01 01 02 01 06 04 30 15 1e 0c 28 1b 0d 0c 15   .......0...(....
+|   3984: 0c 16 14 16 10 0c 17 0e 0e 0f 11 10 10 0e 10 11   ................
+|   4000: 18 11 82 3e 12 10 0f 10 11 10 0f 0f 10 11 0f 0f   ...>............
+|   4016: 81 05 18 10 81 45 11 0d 13 0f 10 17 0c 0c 0e 18   .....E..........
+|   4032: 0c 12 10 0e 0d 0f 13 12 24 0f 17 0f 1a 0d 81 1c   ........$.......
+|   4048: 11 0f 17 10 82 3e 12 11 11 18 0d 12 2a 14 11 10   .....>......*...
+|   4064: 13 0f 12 0f 0f 82 3a 15 10 0f 10 4d 0e 1f 0f 0d   ......:....M....
+|   4080: 0f 0f 1e 10 10 1a 0f 12 0c 12 14 0f 0e 20 17 19   ............. ..
+| page 12 offset 45056
+|      0: 0d 00 00 00 01 0d f4 00 0d f4 00 00 00 00 00 00   ................
+|   3568: 00 00 00 00 84 04 84 80 80 80 80 02 04 00 88 0c   ................
+|   3584: 00 07 02 00 01 01 02 56 06 01 01 02 01 06 01 01   .......V........
+|   3600: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3616: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3632: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3648: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3664: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3680: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3696: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3712: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3728: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3744: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3760: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3776: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3792: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3808: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3824: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3840: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3856: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3872: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3888: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3904: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   3920: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   3936: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   3952: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   3968: 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   ................
+|   3984: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   4000: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+|   4016: 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01   ................
+|   4032: 06 01 01 02 01 06 01 01 02 01 06 01 01 02 01 06   ................
+|   4048: 52 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01   R...............
+|   4064: 01 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01   ................
+|   4080: 02 01 06 01 01 02 01 06 01 01 02 01 06 01 01 02   ................
+| end c1a.txt.db
+}]} {}
+
+do_catchsql_test 84.1 {
+  SELECT * FROM t1('R*R*x') ORDER BY rowid DESC;
+} {1 {fts5: corruption found reading blob 137438953475 from table "t1"}}
+
 sqlite3_fts5_may_be_corrupt 0
 finish_test
index be658cd4bba5d30a77e22bf15606910598e5fbb9..a0e4f8759bccf980680cc8ed090a1197df0b4224 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sproblem\sin\sthe\sxFilter()\smethod\sof\sthe\sfts5_vocab\svirtual\stable\scausing\sit\sto\somit\ssome\sresult\srows\sin\ssome\scases\swhere\sa\svirtual\scursor\sis\sused\smore\sthan\sonce\sby\sSQLite.
-D 2025-11-28T12:00:14.910
+C Fix\sa\sbuffer\soverread\sin\sfts5\sthat\smight\soccur\swhile\sprocessing\sa\scorrupt\sdb.
+D 2025-11-28T12:36:04.399
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -113,7 +113,7 @@ F ext/fts5/fts5_buffer.c f1e6d0324d7c55329d340673befc26681a372a4d36086caa8d1ec7d
 F ext/fts5/fts5_config.c e7d8dd062b44a66cd77e5a0f74f23a2354cd1f3f8575afb967b2773c3384f7f8
 F ext/fts5/fts5_expr.c b8c32da1127bafaf10d6b4768b0dcb92285798524bed2d87a8686f99a8e8d259
 F ext/fts5/fts5_hash.c a6266cedd801ab7964fa9e74ebcdda6d30ec6a96107fa24148ec6b7b5b80f6e0
-F ext/fts5/fts5_index.c 8dbda33a9830764167d7697f1c9980c8a6ee74f5decb28206b963222583b8cdd
+F ext/fts5/fts5_index.c 5e82963a6691ae519df1e018cc7971272a3da1fd47daca5029af0e9ce24f1a8b
 F ext/fts5/fts5_main.c 42025174a556257287071e90516d3ab8115daf1dd525a301883544469a260014
 F ext/fts5/fts5_storage.c 19bc7c4cbe1e6a2dd9849ef7d84b5ca1fcbf194cefc3e386b901e00e08bf05c2
 F ext/fts5/fts5_tcl.c 7fb5a3d3404099075aaa2457307cb459bbc257c0de3dbd52b1e80a5b503e0329
@@ -162,7 +162,7 @@ F ext/fts5/test/fts5contentless4.test ec34dc69ef474ca9997dae6d91e072906e0e9a5a4b
 F ext/fts5/test/fts5contentless5.test 38cd0392c730dc7090c550321ce3c24ba4c392bc97308b51a4180e9959dca7b5
 F ext/fts5/test/fts5corrupt.test 237fce1c3261bb3a5bec333b0f0dbf5b105ec32627ef14cccbda3cfe13833193
 F ext/fts5/test/fts5corrupt2.test 4a03a158c2cb617c9f76d26b35c1ef2534124bc0bbddcea38dfd5b170ebea27b
-F ext/fts5/test/fts5corrupt3.test 43d6a836892d79ab738ab89b3b6f4ae46c07ee966193e4b357bbb14e7f81d5da
+F ext/fts5/test/fts5corrupt3.test e489b51b6c4ded2a808e0f78bdbe126f6d369de41a59ac2717878e37fc3db0e8
 F ext/fts5/test/fts5corrupt4.test dc08d19f5b8943e95a7778a7d8da592042504faf18dd93f68f7d7a0d7d7dd733
 F ext/fts5/test/fts5corrupt5.test 73985d4fe6d8f0d5d5c7bcf79ae7c6522c376cd6ad710a0ff2f26e0c2e222abe
 F ext/fts5/test/fts5corrupt6.test 2d72db743db7b5d9c9a6d0cfef24d799ed1aa5e8192b66c40e871a37ed9eed06
@@ -2171,9 +2171,9 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 61222410c503916b832c1b76b028f1c73f4839a2067902f5db1d6a4a4459cb2b
-Q +6c99e81e6c49c078f1b00952774a7007c60dc1b4ba8a8fc11357efe9c9233212
-R 38ad5e66272a1463e0f775d6bc125e4e
+P 0c836387518dee719eaac8992c63da955630ac073a5e4ba4d887160dff42b898
+Q +8b0cbc18be3c6f2501b102757af6be98c48044a296104cca7bce822ac2304515
+R 1c559fa01e2045a73634bbe221e92967
 U drh
-Z 1d2aadd88417a1fb0e19a1d2b8d31171
+Z a5ce86195e7ae4027ea13f269316d3e3
 # Remove this line to create a well-formed Fossil manifest.
index 055da17df207cb594c745af6218255b75c31ebef..3b055bb81fb997710493f2493e09877c19c55e66 100644 (file)
@@ -1 +1 @@
-0c836387518dee719eaac8992c63da955630ac073a5e4ba4d887160dff42b898
+712e31c59254f82e62a19e41d3b6ac15391dd6e9df966cacadfa9ae79415b243