]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Convert an assert() in R-Tree into a database corruption detection case.
authordrh <drh@noemail.net>
Mon, 29 Jul 2019 17:18:45 +0000 (17:18 +0000)
committerdrh <drh@noemail.net>
Mon, 29 Jul 2019 17:18:45 +0000 (17:18 +0000)
FossilOrigin-Name: 48b518eb6f76fb0beb161d1ebcf3b793efc36262d6d77a1ad5906b6501138e28

ext/rtree/rtree.c
ext/rtree/rtreefuzz001.test
manifest
manifest.uuid

index a3dfa9b5caff7af5c4343658305d4afa785133a1..853d3608abac330e35a0c307d44abb64721f7ea0 100644 (file)
@@ -669,7 +669,6 @@ static int nodeAcquire(
   ** increase its reference count and return it.
   */
   if( (pNode = nodeHashLookup(pRtree, iNode))!=0 ){
-    assert( !pParent || !pNode->pParent || pNode->pParent==pParent );
     if( pParent && !pNode->pParent ){
       if( nodeInParentChain(pNode, pParent) ){
         RTREE_IS_CORRUPT(pRtree);
@@ -677,6 +676,9 @@ static int nodeAcquire(
       }
       pParent->nRef++;
       pNode->pParent = pParent;
+    }else if( pParent && pNode->pParent && pParent!=pNode->pParent ){
+      RTREE_IS_CORRUPT(pRtree);
+      return SQLITE_CORRUPT_VTAB;
     }
     pNode->nRef++;
     *ppNode = pNode;
index 201308ce9f852e5d11e9698c7ce5079d9326b099..f4a91264c72191b45550279ca5fbc8b9d6b455f8 100644 (file)
@@ -774,4 +774,274 @@ do_test rtreefuzz001-400 {
   }
 } {1 {database disk image is malformed}}
 
+do_test rtreefuzz001-500 {
+  sqlite3 db {}
+  db deserialize [decode_hexdb {
+| size 16384 pagesize 4096 filename crash-2e81f5dce5cbd4.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 00   .....@  ........
+|     96: 00 00 00 00 0d 00 00 00 05 0e 6d 00 0f c8 0f 7b   ..........m.....
+|    112: 0f 20 0e cd 0e 6d 00 00 00 00 00 00 00 00 00 00   . ...m..........
+|   3680: 00 00 00 00 00 00 00 00 00 00 00 00 00 5e 05 07   .............^..
+|   3696: 17 1f 1f 01 81 0b 74 61 62 6c 65 74 31 5f 70 61   ......tablet1_pa
+|   3712: 72 65 6e 74 74 31 5f 70 61 72 65 6e 74 05 43 52   rentt1_parent.CR
+|   3728: 45 41 54 45 20 54 41 42 4c 45 20 22 74 31 5f 70   EATE TABLE .t1_p
+|   3744: 61 72 65 6e 74 22 28 6e 6f 64 65 6e 6f 20 49 4e   arent.(nodeno IN
+|   3760: 54 45 47 45 42 20 50 52 49 4d 41 52 59 20 4b 45   TEGEB PRIMARY KE
+|   3776: 59 2c 70 61 72 65 6e 74 6e 6f 64 65 29 51 04 06   Y,parentnode)Q..
+|   3792: 17 1b 1b 01 7b 74 61 62 6c 65 74 31 5f 6e 6f 64   .....tablet1_nod
+|   3808: 65 74 31 5f 6e 6f 64 65 04 43 52 45 41 54 45 20   et1_node.CREATE 
+|   3824: 54 41 42 4c 45 20 22 74 31 5f 6e 6f 64 65 22 28   TABLE .t1_node.(
+|   3840: 6e 6f 64 65 6e 6f 20 49 4e 54 45 47 45 52 20 50   nodeno INTEGER P
+|   3856: 52 49 4d 41 52 59 20 4b 45 59 2c 64 61 74 61 29   RIMARY KEY,data)
+|   3872: 59 03 07 17 1d 1d 01 81 05 74 61 62 6c 65 84 31   Y........table.1
+|   3888: 5f 72 6f 77 69 64 74 31 5f 72 6f 87 69 64 03 43   _rowidt1_ro.id.C
+|   3904: 52 45 41 54 45 20 54 41 42 4c 45 20 22 74 31 5f   REATE TABLE .t1_
+|   3920: 72 6f 77 69 64 22 28 72 6f 77 69 64 20 49 4e 54   rowid.(rowid INT
+|   3936: 45 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59   EGER PRIMARY KEY
+|   3952: 2c 6e f8 64 65 6e 6f 2c 61 30 29 4b 02 07 17 11   ,n.deno,a0)K....
+|   3968: 11 08 81 03 74 22 62 6c 65 74 31 74 31 43 52 45   ....t.blet1t1CRE
+|   3984: 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c   ATE VIRTUAL TABL
+|   4000: 45 20 74 31 20 55 53 49 4e 47 20 72 74 72 65 65   E t1 USING rtree
+|   4016: 5f 69 33 32 28 69 cc 2c 78 30 2c 78 31 2c 79 30   _i32(i.,x0,x1,y0
+|   4032: 2c 79 31 2c 2b 65 78 29 36 01 06 17 17 17 01 4d   ,y1,+ex)6......M
+|   4048: 74 61 62 6c 65 63 6f 6f 72 64 63 6f 6f 72 64 02   tablecoordcoord.
+|   4064: 43 52 45 41 54 45 20 54 41 42 4c 45 20 63 6f 6f   CREATE TABLE coo
+|   4080: 71 64 28 76 20 49 4e 54 2c 20 77 20 49 4e 54 29   qd(v INT, w INT)
+| page 2 offset 4096
+|   4016: 00 00 00 00 00 00 00 00 00 00 00 05 0a 03 01 01   ................
+|   4032: 0a 02 05 09 03 01 01 09 02 05 08 03 01 01 08 02   ................
+|   4048: 05 07 03 01 01 07 02 05 06 03 11 01 06 02 05 05   ................
+|   4064: 03 01 01 05 02 05 04 03 01 01 04 02 05 03 03 01   ................
+|   4080: 01 03 02 05 02 03 01 01 02 02 04 01 03 09 01 02   ................
+| page 3 offset 8192
+|      0: 0d 0e 4f 00 64 0b 5a 12 0d bb 0d 84 0f eb 0d c6   ..O.d.Z.........
+|     16: 0f d7 0e cc 0f c1 0f b6 0f ab 0f 9f 0f 94 0d 8f   ................
+|     32: 0f 86 0d d1 0f 62 0f 67 0f 5c 0f 51 1f 46 0f 3a   .....b.g...Q.F.:
+|     48: 0f 30 0d 9a 0f 21 0d dc 0f 00 00 00 00 00 00 00   .0...!..........
+|   2896: 00 00 00 00 00 00 00 00 00 00 0a ce 1a 04 00 01   ................
+|   2912: 17 03 31 30 78 31 30 0a 4e 19 03 ff f1 15 03 31   ..10x10.N......1
+|   2928: 30 78 39 09 ce 18 04 00 01 15 03 31 30 78 38 09   0x9........10x8.
+|   2944: ce 17 04 00 01 15 03 31 30 78 37 09 ce 16 04 00   .......10x7.....
+|   2960: 12 15 03 31 30 78 36 09 ce 15 04 00 01 15 03 31   ...10x6........1
+|   2976: 30 78 35 09 ce 14 04 00 01 15 0d a1 30 78 34 09   0x5.........0x4.
+|   2992: ce 13 04 00 01 15 03 31 30 78 33 09 ce 12 04 00   .......10x3.....
+|   3008: 01 15 03 31 40 78 32 09 ce 11 04 00 01 15 03 31   ...1@x2........1
+|   3024: 30 78 31 09 c6 32 04 00 01 15 03 39 78 31 30 08   0x1..2.....9x10.
+|   3040: c6 31 04 00 01 13 03 39 78 39 08 c6 30 04 00 01   .1.....9x9..0...
+|   3056: 13 03 39 78 38 08 c6 2f 04 00 01 14 03 39 78 37   ..9x8../.....9x7
+|   3072: 08 c6 2e 04 00 01 13 03 39 78 36 08 c6 2d 04 00   ........9x6..-..
+|   3088: 01 13 03 39 78 34 f8 c6 2c 04 00 01 13 03 39 78   ...9x4..,.....9x
+|   3104: 34 08 c6 2b 04 00 60 13 03 39 79 13 08 c6 2a 04   4..+..`..9y...*.
+|   3120: 00 11 13 03 39 78 32 08 c6 29 04 00 01 13 03 39   ....9x2..).....9
+|   3136: 78 31 09 be 4a 04 00 01 15 03 38 78 31 30 08 be   x1..J.....8x10..
+|   3152: 49 04 00 01 13 03 38 78 39 08 be 48 04 00 01 13   I.....8x9..H....
+|   3168: 03 38 77 98 08 be 47 04 00 01 14 23 38 78 37 08   .8w...G....#8x7.
+|   3184: be 46 04 00 01 13 03 38 78 36 08 be 45 04 00 01   .F.....8x6..E...
+|   3200: 13 03 38 78 35 08 be 44 04 00 01 13 03 38 78 34   ..8x5..D.....8x4
+|   3216: 08 be 43 04 00 01 13 03 38 78 33 08 be 42 04 00   ..C.....8x3..B..
+|   3232: 01 13 03 38 78 32 08 be 41 04 00 01 13 03 38 78   ...8x2..A.....8x
+|   3248: 31 09 b6 62 04 00 01 15 03 37 68 31 30 08 b6 61   1..b.....7h10..a
+|   3264: 04 00 01 13 03 37 79 39 08 b6 60 04 00 01 12 f3   .....7y9..`.....
+|   3280: 37 78 38 08 b6 5e 04 00 01 13 03 37 78 37 08 b6   7x8..^.....7x7..
+|   3296: 5e 04 00 01 13 03 37 78 36 08 b6 5d 04 00 01 13   ^.....7x6..]....
+|   3312: 03 37 78 35 08 b6 5c 04 00 00 13 03 37 78 34 08   .7x5........7x4.
+|   3328: b6 5b 04 00 01 13 03 37 78 33 08 b6 5a 04 00 01   .[.....7x3..Z...
+|   3344: 13 03 37 78 32 08 b6 59 04 00 01 13 03 37 78 31   ..7x2..Y.....7x1
+|   3360: 09 ae 7a 04 00 01 15 03 36 78 31 30 08 ae 79 04   ..z.....6x10..y.
+|   3376: 00 01 e2 03 36 78 39 08 ae 78 04 00 01 13 03 36   ....6x9..x.....6
+|   3392: 78 38 08 ae 77 04 00 01 13 03 36 78 37 08 ae 76   x8..w.....6x7..v
+|   3408: 04 00 01 13 03 36 78 36 08 ae 85 04 00 01 13 03   .....6x6........
+|   3424: 36 78 35 08 ae 73 f4 00 01 13 03 36 78 34 08 ae   6x5..s.....6x4..
+|   3440: 73 04 00 01 13 03 36 78 33 08 ae 72 04 00 01 13   s.....6x3..r....
+|   3456: 03 36 78 32 08 87 6a 04 00 01 13 02 3d e8 32 08   .6x2..j.....=.2.
+|   3472: 8f 52 04 00 01 13 02 32 78 32 08 97 3b 04 00 01   .R.....2x2..;...
+|   3488: 13 02 33 78 32 08 9f 22 04 00 01 13 02 34 78 32   ..3x2........4x2
+|   3504: 08 a7 0a 04 00 01 13 02 35 78 32 08 87 69 04 00   ........5x2..i..
+|   3520: 01 13 02 31 78 31 08 87 6c 04 00 01 13 02 31 78   ...1x1..l.....1x
+|   3536: 34 08 8f 54 04 00 01 13 02 32 78 34 08 97 3c 04   4..T.....2x4..<.
+|   3552: 00 01 12 f2 33 78 34 08 9f 24 04 00 01 13 02 34   ....3x4..$.....4
+|   3568: 78 34 08 a7 0c 04 00 01 13 02 35 78 34 0e 6c 00   x4........5x4.l.
+|   3584: 08 ae 71 04 00 01 13 03 36 78 31 09 a7 12 04 00   ..q.....6x1.....
+|   3600: 01 15 02 35 78 31 30 08 a7 11 04 00 01 13 02 35   ...5x10........5
+|   3616: 78 39 08 a7 10 04 00 01 13 02 35 78 38 08 a7 0f   x9........5x8...
+|   3632: 04 00 01 14 02 35 78 37 08 a7 0e 04 00 01 13 02   .....5x7........
+|   3648: 35 78 36 08 a7 0d 04 00 01 13 02 35 78 35 0e 0e   5x6........5x5..
+|   3664: b3 00 08 00 01 00 03 08 a7 0b 04 00 01 13 02 35   ...............5
+|   3680: 78 33 0e d1 00 08 a7 09 04 00 01 13 02 35 78 31   x3...........5x1
+|   3696: 09 9f 2a 04 00 01 15 02 34 78 31 30 03 cf 29 04   ..*.....4x10..).
+|   3712: 00 01 13 02 34 78 39 08 9f 28 04 00 01 13 02 34   ....4x9..(.....4
+|   3728: 78 38 09 9f 27 04 00 01 13 02 34 78 37 08 9f 26   x8..'.....4x7..&
+|   3744: 04 00 01 13 0e a4 78 36 08 9f 25 04 00 01 13 02   ......x6..%.....
+|   3760: 34 78 35 0f 18 00 09 00 09 13 34 78 08 9f 23 04   4x5.......4x..#.
+|   3776: 00 01 13 02 34 78 33 0f 36 00 08 9f 21 04 00 01   ....4x3.6...!...
+|   3792: 13 02 34 78 31 09 97 42 04 00 01 15 02 33 78 31   ..4x1..B.....3x1
+|   3808: 30 08 97 41 04 00 01 13 02 33 78 39 08 97 40 04   0..A.....3x9..@.
+|   3824: 00 01 13 02 33 78 38 18 97 3f 04 00 01 13 02 33   ....3x8..?.....3
+|   3840: 78 37 08 97 3e 04 00 01 13 02 33 78 36 08 97 3d   x7..>.....3x6..=
+|   3856: 04 00 01 13 02 33 78 35 1f 7d 00 09 00 09 13 33   .....3x5.......3
+|   3872: 78 07 97 3b 04 00 01 13 02 33 78 33 0f 9b 00 08   x..;.....3x3....
+|   3888: 97 39 04 00 01 13 02 33 78 31 09 8f 5a 04 00 01   .9.....3x1..Z...
+|   3904: 15 02 32 79 31 30 08 8f 59 04 00 01 13 fa 32 78   ..2y10..Y.....2x
+|   3920: 39 08 8f 58 04 00 01 13 02 32 78 38 08 8f 57 04   9..X.....2x8..W.
+|   3936: 00 01 13 02 32 78 37 08 8f 56 04 00 01 13 02 32   ....2x7..V.....2
+|   3952: 78 36 08 8f 55 04 00 01 13 02 32 78 35 0f e2 00   x6..U.....2x5...
+|   3968: 09 00 09 13 32 78 08 8f 53 04 00 01 13 02 32 78   ....2x..S.....2x
+|   3984: 33 00 00 00 08 8f 51 04 00 01 13 02 aa 78 31 09   3.....Q......x1.
+|   4000: 87 72 04 00 01 15 02 31 78 31 30 08 87 71 04 00   .r.....1x10..q..
+|   4016: 01 13 03 31 78 39 08 87 70 04 00 01 13 02 31 78   ...1x9..p.....1x
+|   4032: 38 08 87 6f 04 00 01 13 02 31 78 37 08 87 6e 04   8..o.....1x7..n.
+|   4048: 00 01 13 02 31 78 36 08 87 6d 04 00 01 13 02 31   ....1x6..m.....1
+|   4064: 7d 25 0f f9 00 08 ff f9 13 31 78 08 87 6b 04 00   .%.......1x..k..
+|   4080: 01 13 02 31 78 33 00 00 00 00 00 08 00 01 00 03   ...1x3..........
+| page 4 offset 12288
+|      0: 0d 00 00 00 03 01 87 00 0b 2d 06 5a 01 87 00 00   .........-.Z....
+|    384: 00 00 00 00 00 00 00 89 50 01 54 00 93 24 00 00   ........P.T..$..
+|    400: 00 32 00 00 00 00 00 00 23 2f 00 00 00 09 00 00   .2......#/......
+|    416: 00 0b 00 00 00 07 00 00 00 09 00 00 00 00 00 00   ................
+|    432: 23 2e 00 00 10 09 00 00 00 0b 00 00 00 06 00 00   #...............
+|    448: 00 08 00 00 00 00 00 00 23 2d 00 00 00 09 00 00   ........#-......
+|    464: 00 0b 00 00 00 05 00 00 00 07 00 00 00 00 00 00   ................
+|    480: 23 2c 00 00 00 09 00 00 00 0b 00 00 00 04 00 00   #,..............
+|    496: 00 06 00 00 00 00 00 00 23 2b 00 00 00 09 00 00   ........#+......
+|    512: 00 0b 00 00 00 03 00 00 00 05 00 00 00 00 00 00   ................
+|    528: 23 2a 00 00 00 09 00 00 00 0b 00 00 00 02 00 00   #*..............
+|    544: 00 04 00 00 00 00 00 00 23 29 00 00 00 09 00 00   ........#)......
+|    560: 00 0b 00 00 00 01 00 00 00 03 00 00 00 00 00 00   ................
+|    576: 1f 4a 00 00 00 08 00 00 00 0a 00 00 00 0a 00 00   .J..............
+|    592: 00 0c 00 00 00 00 00 00 0f 49 00 00 00 08 00 00   .........I......
+|    608: 00 0a 00 00 00 09 00 00 00 0b 00 00 00 00 00 00   ................
+|    624: 1f 48 00 00 00 08 00 00 00 0a 00 00 00 08 00 06   .H..............
+|    640: 00 0a 00 00 00 00 00 00 1f 47 00 00 00 08 00 00   .........G......
+|    656: 00 0a 00 00 00 07 00 00 00 09 00 00 00 00 00 00   ................
+|    672: 15 d6 00 00 00 08 00 00 00 0a 00 00 00 06 00 00   ................
+|    688: 00 08 00 00 00 00 00 00 1f 45 00 00 00 08 00 00   .........E......
+|    704: 00 0a 00 00 00 05 00 00 00 07 00 00 00 00 00 00   ................
+|    720: 1f 44 00 00 00 08 00 00 00 0a 00 00 00 04 00 00   .D..............
+|    736: 00 06 00 00 00 00 00 00 1f 43 00 00 00 07 ff ff   .........C......
+|    752: f0 0a 00 00 00 03 00 00 00 05 00 00 00 00 00 00   ................
+|    768: 1f 42 00 00 00 08 00 00 00 0a 00 00 00 01 ff f0   .B..............
+|    784: 00 03 ff ff ff ff ff ff 1f 41 00 00 00 08 00 00   .........A......
+|    800: 00 0a 00 00 00 01 00 00 00 03 00 00 00 00 00 00   ................
+|    816: 1b 62 00 00 00 07 00 00 00 09 00 00 00 0a 00 00   .b..............
+|    832: 00 0c 05 00 00 00 00 00 1b 64 10 00 00 07 00 00   .........d......
+|    848: 00 09 00 00 00 09 00 00 00 0b 00 00 00 00 00 00   ................
+|    864: 1b 60 00 00 00 07 00 00 00 09 00 00 00 08 00 00   .`..............
+|    880: 00 0a 00 00 00 00 00 00 1b 5f 00 00 00 07 00 00   ........._......
+|    896: 00 09 00 00 00 07 00 00 00 09 00 00 00 00 00 00   ................
+|    912: 1b 5e 00 00 00 07 00 00 00 09 00 00 00 06 00 00   .^..............
+|    928: 00 08 00 00 00 00 00 00 1b 5d 00 00 00 08 00 00   .........]......
+|    944: 00 09 00 00 00 05 00 00 00 07 00 00 00 00 00 00   ................
+|    960: 1b 5c 00 00 00 07 00 00 00 09 00 00 00 04 00 00   ................
+|    976: 06 46 00 00 00 00 00 00 1b 5b 00 00 00 07 00 00   .F.......[......
+|    992: 00 09 00 00 00 03 00 00 00 04 ff f0 00 00 00 00   ................
+|   1008: 1b 5a 00 00 00 07 00 00 00 19 00 00 00 02 00 00   .Z..............
+|   1024: 00 04 00 00 00 00 00 00 1b 59 00 00 00 07 00 00   .........Y......
+|   1040: 00 09 00 00 00 01 00 00 00 03 00 00 00 00 ff f0   ................
+|   1056: 17 7a 00 00 00 06 00 00 00 08 00 00 00 0a 00 00   .z..............
+|   1072: 00 0c 00 00 00 00 00 00 17 79 00 00 00 06 00 00   .........y......
+|   1088: 00 08 00 00 00 09 00 00 00 0b 00 00 00 00 00 00   ................
+|   1104: 17 78 00 00 00 06 00 00 00 08 00 00 00 08 00 00   .x..............
+|   1120: 00 0a 00 00 00 00 00 00 17 77 00 00 00 06 10 00   .........w......
+|   1136: 00 08 00 00 00 07 00 09 c0 09 00 00 00 00 00 00   ................
+|   1152: 17 76 00 00 00 06 00 00 00 08 00 00 00 06 00 00   .v..............
+|   1168: 00 08 00 00 00 00 00 00 17 75 00 00 00 06 00 00   .........u......
+|   1184: 00 08 00 00 00 05 00 00 00 07 00 00 00 00 00 00   ................
+|   1200: 17 74 00 00 00 06 00 00 00 08 00 00 00 03 ff ff   .t..............
+|   1216: f0 06 00 00 00 83 00 00 17 73 00 00 00 06 00 00   .........s......
+|   1232: 00 08 00 00 00 03 00 00 00 05 00 00 00 00 00 00   ................
+|   1248: 17 71 ff 00 00 06 00 00 10 08 00 00 00 02 00 00   .q..............
+|   1264: 00 04 00 00 c0 00 00 00 17 0d 00 00 00 06 00 00   ................
+|   1280: 00 08 00 00 e7 01 00 00 00 03 00 00 09 e0 00 00   ................
+|   1296: 23 30 00 00 00 09 00 00 00 0a 00 00 00 08 00 00   #0..............
+|   1312: 00 0a 00 00 00 00 bb 00 23 31 00 00 00 09 00 00   ........#1......
+|   1328: 00 0b 00 00 00 09 00 00 00 0b 00 00 00 00 00 00   ................
+|   1344: 23 32 00 00 00 09 00 00 00 0b 00 00 00 0a 00 00   #2..............
+|   1360: 00 0c 00 00 00 00 00 00 27 11 00 00 00 0a 00 00   ........'.......
+|   1376: 00 0c 00 00 00 01 00 08 c0 03 00 00 00 00 00 00   ................
+|   1392: 27 12 00 00 00 0a 00 00 00 0c 51 00 00 02 00 00   '.........Q.....
+|   1408: 00 04 6f 00 00 00 00 00 27 13 00 00 00 09 ff ff   ..o.....'.......
+|   1424: 00 0c 00 00 00 03 00 00 00 05 00 00 00 00 00 00   ................
+|   1440: 27 14 00 00 00 0a 00 00 00 00 00 00 00 00 00 00   '...............
+|   1616: 00 00 00 00 00 00 00 00 00 00 89 50 02 04 00 93   ...........P....
+|   1632: 24 00 00 00 32 00 00 00 00 00 00 23 8c 00 00 00   $...2......#....
+|   1648: 05 00 00 00 07 00 00 00 04 00 00 00 06 00 00 00   ................
+|   1664: 00 00 00 0f a4 00 00 00 04 00 00 00 06 00 00 00   ................
+|   1680: 04 00 00 00 06 00 00 00 00 00 00 0b bc 00 00 00   ................
+|   1696: 03 00 00 00 05 00 00 00 04 00 00 00 06 00 00 00   ................
+|   1712: 00 00 00 07 d4 00 00 00 02 00 00 00 04 00 00 00   ................
+|   1728: 04 00 00 00 06 00 00 00 10 00 00 03 ec 00 00 00   ................
+|   1744: 01 00 00 00 03 00 00 00 04 00 00 00 06 00 00 00   ................
+|   1760: 00 00 00 13 8d 00 00 00 05 00 00 00 07 00 00 00   ................
+|   1776: 05 00 00 00 07 00 00 00 00 00 00 0f a5 00 00 00   ................
+|   1792: 04 00 00 00 06 00 00 00 05 00 00 00 07 00 00 00   ................
+|   1808: 00 00 00 0b bd 00 00 00 03 00 00 00 05 00 00 00   ................
+|   1824: 05 00 00 00 07 00 00 00 00 00 00 07 d5 00 00 00   ................
+|   1840: 02 00 00 00 05 00 00 00 05 00 00 00 07 00 00 00   ................
+|   1856: 00 00 00 03 ed 00 00 00 01 00 00 00 03 00 00 00   ................
+|   1872: 05 00 00 00 07 00 00 00 00 00 00 13 8e 00 00 00   ................
+|   1888: 05 00 00 00 07 00 00 00 06 00 00 00 08 00 00 00   ................
+|   1904: 00 00 00 0f a6 00 00 00 04 00 00 00 06 00 00 00   ................
+|   1920: 06 00 00 00 07 ff ff 00 00 00 00 0b be 00 00 00   ................
+|   1936: 0b 40 00 00 05 00 00 00 06 00 00 00 08 00 00 00   .@..............
+|   1952: 00 00 00 07 d6 00 00 00 02 00 00 00 04 00 00 00   ................
+|   1968: 05 00 00 00 08 00 00 00 00 00 00 03 ee 00 00 00   ................
+|   1984: 01 00 00 00 02 ff ff 00 06 00 00 00 08 00 00 00   ................
+|   2000: 00 00 00 13 8f 00 00 00 05 00 00 00 07 00 00 00   ................
+|   2016: 07 00 00 00 09 00 00 00 00 00 00 0f a7 00 00 00   ................
+|   2032: 04 00 00 00 06 00 00 00 07 00 00 00 09 00 00 08   ................
+|   2048: 30 00 00 0b bf 00 00 00 03 00 00 00 05 00 00 00   0...............
+|   2064: 07 00 00 00 09 00 00 00 00 00 00 07 d7 00 00 00   ................
+|   2080: 02 00 00 00 04 00 00 00 07 00 00 00 09 00 00 00   ................
+|   2096: 00 00 00 03 ef 00 00 00 01 00 00 00 03 00 00 00   ................
+|   2112: 07 00 00 00 09 00 00 00 00 00 00 13 90 00 00 00   ................
+|   2128: 05 00 01 00 07 00 00 00 08 00 00 00 0a 00 00 00   ................
+|   2144: 00 00 00 0f a8 00 00 00 04 00 00 00 06 00 00 00   ................
+|   2160: 08 00 00 00 0a 00 00 00 00 00 00 0b f2 00 00 00   ................
+|   2176: 03 00 00 00 05 00 00 00 08 00 00 00 0a 00 00 01   ................
+|   2192: 00 00 00 07 d8 00 00 00 02 00 00 00 04 00 00 00   ................
+|   2208: 08 00 00 00 0a 00 00 00 00 00 00 03 f0 00 00 00   ................
+|   2224: 01 00 00 00 03 00 00 00 08 00 00 00 09 ff 00 00   ................
+|   2240: 00 00 00 13 91 00 00 00 05 00 00 00 07 00 00 00   ................
+|   2256: 09 00 00 00 0b 00 00 00 00 00 00 0f a9 00 00 00   ................
+|   2272: 04 00 00 00 06 00 00 00 09 00 00 00 0b 00 00 00   ................
+|   2288: 00 00 00 0b c1 00 00 00 03 00 00 00 05 00 00 00   ................
+|   2304: 09 00 00 00 0b 00 00 00 00 00 00 07 d9 00 00 00   ................
+|   2320: 02 00 00 00 04 00 00 00 09 00 00 00 0b 00 00 01   ................
+|   2336: 00 00 00 03 f0 ff ff 00 01 00 00 00 03 00 00 00   ................
+|   2352: 09 00 00 00 0b 00 00 00 00 00 00 13 92 00 00 00   ................
+|   2368: 05 00 00 00 07 00 00 00 0a 00 00 00 0c 00 00 00   ................
+|   2384: 00 00 00 0f aa 00 00 00 04 00 00 00 06 00 00 00   ................
+|   2400: 0a 00 00 00 0c 00 00 00 00 00 00 0b c2 00 00 00   ................
+|   2416: 03 00 00 00 05 00 00 00 0a 00 00 00 0c 00 00 00   ................
+|   2432: 00 00 00 07 da 00 00 00 02 00 00 00 04 00 00 00   ................
+|   2448: 0a 00 00 00 0c 00 00 00 00 00 00 03 f2 00 00 00   ................
+|   2464: 01 00 00 10 03 00 00 00 0a 00 00 00 0c 00 00 00   ................
+|   2480: 00 00 00 03 eb 00 00 00 01 00 00 00 03 00 00 00   ................
+|   2496: 03 00 00 00 05 00 00 00 00 00 00 07 d3 00 00 00   ................
+|   2512: 02 00 00 00 04 00 00 00 03 00 00 00 05 00 00 00   ................
+|   2528: 00 00 00 0b bb 00 00 00 03 00 00 00 05 00 00 00   ................
+|   2544: 03 00 00 00 05 00 00 00 00 00 00 0f a3 00 00 00   ................
+|   2560: 04 00 00 00 06 00 00 00 03 00 00 00 05 00 00 00   ................
+|   2576: 00 00 00 13 8b 00 00 00 05 00 00 00 07 00 00 00   ................
+|   2592: 03 00 00 00 05 00 00 00 00 00 00 03 ea 00 00 00   ................
+|   2608: 01 00 00 00 03 00 00 00 02 00 00 00 04 00 00 00   ................
+|   2624: 00 00 00 07 d2 00 00 00 02 00 00 00 04 00 00 00   ................
+|   2640: 02 00 00 00 04 00 00 00 00 00 00 0b ba 00 00 00   ................
+|   2656: 03 00 00 00 05 00 00 00 02 00 00 00 04 00 00 00   ................
+|   2672: 00 00 00 0f a1 ff ff ff 04 00 00 00 06 00 00 00   ................
+|   2688: 02 00 00 00 04 00 00 00 00 00 00 13 8a 00 00 00   ................
+|   2704: 05 00 00 00 06 ff ff ff f2 00 00 00 04 00 00 00   ................
+|   2720: 00 00 00 03 e9 00 00 00 01 00 00 00 03 00 00 00   ................
+|   2736: 01 00 00 00 03 00 00 00 00 00 00 07 d1 00 00 00   ................
+|   2848: 00 00 00 00 00 00 00 00 00 00 00 00 00 89 50 01   ..............P.
+|   2864: 04 00 93 24 00 01 00 02 00 00 00 00 00 00 00 02   ...$............
+|   2880: ff ff ff 06 00 00 00 0c 00 00 00 01 00 00 00 0b   ................
+|   2896: 00 00 00 00 00 00 00 02 40 00 00 00 00 00 00 00   ........@.......
+| end crash-2e81f5dce5cbd4.db}]
+  catchsql {UPDATE t1 SET ex= ex ISNULL}
+} {1 {database disk image is malformed}}
+
+
 finish_test
index f80ed710fa1a255df0e28139e0acddfe2daa63fe..4f979abb1a820083437d19646d16ade53f565f34 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\scrash\sin\sfts3\scaused\sby\scorrupt\sdatabase\srecords.
-D 2019-07-29T16:53:30.954
+C Convert\san\sassert()\sin\sR-Tree\sinto\sa\sdatabase\scorruption\sdetection\scase.
+D 2019-07-29T17:18:45.497
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -377,7 +377,7 @@ F ext/repair/test/checkindex01.test b530f141413b587c9eb78ff734de6bb79bc3515c3350
 F ext/repair/test/test.tcl 686d76d888dffd021f64260abf29a55c57b2cedfa7fc69150b42b1d6119aac3c
 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
 F ext/rtree/geopoly.c c591164125808f8bba9659e92665b78412cd263e654b6f05294f3a8da7cdd9fb
-F ext/rtree/rtree.c 2bc0cec6c2570d48717472d317dbbe602e296336909c011fb70eab60800325f2
+F ext/rtree/rtree.c f8d9ea7d988c1002bff5acfac77d188f2f5d9eb025f24d5038a3d70a9c3f3d9d
 F ext/rtree/rtree.h 4a690463901cb5e6127cf05eb8e642f127012fd5003830dbc974eca5802d9412
 F ext/rtree/rtree1.test 7573134f1b4f59df36c1b0a6de51268fd3b9c714d91f3811482263e734e416ea
 F ext/rtree/rtree2.test 5f25b01acd03470067a2d52783b2eb0a50bf836803d4342d20ca39e541220fe2
@@ -401,7 +401,7 @@ F ext/rtree/rtree_util.tcl db734b4c5e75fed6acc56d9701f2235345acfdec750b5fc7b5879
 F ext/rtree/rtreecheck.test d67d5b3e9e45bfa8cd90734e8e9302144ac415b8e9176c6f02d4f92892ee8a35
 F ext/rtree/rtreecirc.test aec664eb21ae943aeb344191407afff5d392d3ae9d12b9a112ced0d9c5de298e
 F ext/rtree/rtreeconnect.test 225ad3fcb483d36cbee423a25052a6bbae762c9576ae9268332360c68c170d3d
-F ext/rtree/rtreefuzz001.test 836d87653851ae8e7b506d8bd3d62329548adc48ff9bc0a9051efd576710be7b
+F ext/rtree/rtreefuzz001.test f9fecd174fc6475174d876f78f77b538122c1db296a96dca4615918953a892be
 F ext/rtree/sqlite3rtree.h 03c8db3261e435fbddcfc961471795cbf12b24e03001d0015b2636b0f3881373
 F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
 F ext/rtree/util/randomshape.tcl 54ee03d0d4a1c621806f7f44d5b78d2db8fac26e0e8687c36c4bd0203b27dbff
@@ -1838,7 +1838,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 6ac0f822450b26c7d67c33cdb2a90189cd3cf65a052af8497b795c3f71a23813
-R de5237173bbfe523808f0ae66ce2b671
-U dan
-Z 58664cda1bd8fa02210bf17e12e3db81
+P 11f7f94f1c5d761e7f381e277658b7e857cc369283996c509061de55fd6aad52
+R 4b6136e9b391e089f928150a88e88819
+U drh
+Z d18c141f950c38e740b9d65f9c3aa0d1
index 7204806ec3e8d7e749f13d336a48f7669c242ffa..95480f60010889d5bb748dae095088c32cf91b21 100644 (file)
@@ -1 +1 @@
-11f7f94f1c5d761e7f381e277658b7e857cc369283996c509061de55fd6aad52
\ No newline at end of file
+48b518eb6f76fb0beb161d1ebcf3b793efc36262d6d77a1ad5906b6501138e28
\ No newline at end of file