gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/dbfuzz001.test (about) 1 # 2012-12-13 2 # 3 # The author disclaims copyright to this source code. In place of 4 # a legal notice, here is a blessing: 5 # 6 # May you do good and not evil. 7 # May you find forgiveness for yourself and forgive others. 8 # May you share freely, never taking more than you give. 9 # 10 #*********************************************************************** 11 # 12 # Test cases for corrupt database files. 13 14 set testdir [file dirname $argv0] 15 source $testdir/tester.tcl 16 17 ifcapable !deserialize { 18 finish_test 19 return 20 } 21 database_may_be_corrupt 22 23 # In the following database file, there is 384 bytes of free space 24 # on page 8 that does not appear on the freeblock list. 25 # 26 do_test dbfuzz001-100 { 27 sqlite3 db {} 28 db deserialize [decode_hexdb { 29 | size 5632 pagesize 512 filename c4.db 30 | page 1 offset 0 31 | 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. 32 | 16: 02 00 01 01 00 40 20 20 00 00 00 02 00 00 00 0b .....@ ........ 33 | 32: 00 00 00 06 00 00 00 01 00 00 00 28 00 00 00 04 ...........(.... 34 | 48: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................ 35 | 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ................ 36 | 96: 00 2e 30 38 0d 00 00 00 06 01 06 00 01 da 01 b0 ..08............ 37 | 112: 01 56 01 86 01 2a 01 06 00 00 00 00 00 00 00 00 .V...*.......... 38 | 256: 00 00 00 00 00 00 22 07 06 17 11 11 01 31 74 61 ......"......1ta 39 | 272: 62 6c 65 74 34 74 34 07 43 52 45 41 54 45 20 54 blet4t4.CREATE T 40 | 288: 41 42 4c 45 20 74 34 28 78 29 2a 06 06 17 13 11 ABLE t4(x)*..... 41 | 304: 01 3f 69 6e 64 65 78 00 00 00 00 00 00 00 00 00 .?index......... 42 | 336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e t3(x).......Ein 43 | 352: 64 65 78 74 32 63 64 74 32 05 43 52 45 41 54 45 dext2cdt2.CREATE 44 | 368: 20 49 4e 44 45 58 20 74 32 63 64 20 4f 4e 20 74 INDEX t2cd ON t 45 | 384: 32 28 63 2c 64 29 28 05 06 17 11 11 01 3d 74 61 2(c,d)(......=ta 46 | 400: 62 6c 65 74 33 74 33 04 43 52 45 41 54 45 20 54 blet3t3.CREATE T 47 | 416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 ABLE t3(c,x,e,f) 48 | 432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74 (......=tablet2t 49 | 448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 2.CREATE TABLE t 50 | 464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11 2(c,d,e,f)$..... 51 | 480: 01 35 74 61 62 6c 65 74 31 74 31 02 43 52 45 41 .5tablet1t1.CREA 52 | 496: 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c 62 29 TE TABLE t1(a,b) 53 | page 2 offset 512 54 | 0: 0d 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ................ 55 | page 3 offset 1024 56 | 0: 0d 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ................ 57 | page 4 offset 1536 58 | 0: 05 00 00 00 03 01 f1 00 00 00 00 0b 01 fb 01 f6 ................ 59 | 16: 01 f1 00 16 00 00 09 06 05 01 01 01 01 04 04 03 ................ 60 | 32: 03 07 05 05 01 01 09 09 02 02 19 04 05 17 17 17 ................ 61 | 48: 17 73 65 76 65 6e 65 69 67 68 74 65 69 67 68 74 .seveneighteight 62 | 64: 73 65 76 65 6e 25 03 05 07 07 07 07 40 14 00 00 seven%......@... 63 | 80: 00 00 00 00 40 18 00 00 00 00 00 00 40 18 00 00 ....@.......@... 64 | 96: 00 00 00 00 40 14 00 00 00 00 00 00 09 02 05 01 ....@........... 65 | 112: 01 01 01 03 04 04 03 07 01 05 09 01 01 09 02 02 ................ 66 | 352: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a ................ 67 | 496: 00 00 00 00 0a 3e 00 00 00 09 21 00 00 00 08 06 .....>....!..... 68 | page 5 offset 2048 69 | 0: 0a 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ................ 70 | page 7 offset 3072 71 | 0: 0d 00 00 00 08 01 c2 00 01 fb 01 f6 01 f1 01 ec ................ 72 | 16: 01 e0 01 d4 01 cb 01 c2 00 00 00 00 00 00 00 00 ................ 73 | 96: 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 ................ 74 | 224: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ................ 75 | 288: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 ................ 76 | 448: 00 00 07 08 02 17 65 69 67 68 74 07 07 02 17 65 ......eight....e 77 | 464: 69 67 68 74 0a 06 02 07 40 18 00 00 00 00 00 00 ight....@....... 78 | 480: 0a 05 02 07 40 18 00 00 00 00 00 00 03 04 02 01 ....@........... 79 | 496: 04 03 03 02 01 04 03 02 02 01 02 03 01 02 01 02 ................ 80 | page 8 offset 3584 81 | 0: 0d 00 21 00 01 00 16 00 00 16 00 16 00 16 00 16 ..!............. 82 | 16: 00 16 00 16 00 00 09 06 05 01 01 01 01 04 04 03 ................ 83 | 32: 03 00 00 00 5f 01 09 09 02 02 00 00 00 56 17 17 ...._........V.. 84 | 48: 17 73 65 76 65 6e 65 69 67 68 74 65 69 67 68 74 .seveneighteight 85 | 64: 73 65 76 65 6e 00 00 00 3b 07 07 07 40 14 00 00 seven...;...@... 86 | 80: 00 00 00 00 40 18 00 00 00 00 00 00 40 18 00 00 ....@.......@... 87 | 96: 00 00 00 00 40 14 00 00 00 00 00 00 00 00 00 14 ....@........... 88 | 112: 01 01 01 03 04 04 03 00 00 00 09 01 01 09 02 02 ................ 89 | 352: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a ................ 90 | page 9 offset 4096 91 | 0: 0d 00 00 00 1b 00 47 00 01 d9 01 be 01 af 01 a0 ......G......... 92 | 16: 01 91 01 82 01 73 01 64 01 55 01 46 01 37 01 28 .....s.d.U.F.7.( 93 | 32: 01 19 01 0a 00 fb 00 ec 00 dd 00 ce 00 bf 00 b0 ................ 94 | 48: 00 a1 00 92 00 83 00 74 00 65 00 56 00 47 00 00 .......t.e.V.G.. 95 | 64: 00 00 00 00 00 00 00 0d 21 00 00 48 01 54 00 01 ........!..H.T.. 96 | 80: f7 01 ec 01 c5 01 0d 20 00 00 48 01 54 00 01 f7 ....... ..H.T... 97 | 96: 01 ec 01 c5 01 0d 1f 00 00 48 01 54 00 01 f7 01 .........H.T.... 98 | 112: ec 01 c5 01 0d 1e 00 00 48 01 54 00 01 f7 01 ec ........H.T..... 99 | 128: 01 c5 01 0d 1d 00 00 48 01 54 00 01 f7 01 ec 01 .......H.T...... 100 | 144: c5 01 0d 1c 00 00 48 01 54 00 01 f7 01 ec 01 c5 ......H.T....... 101 | 160: 01 0d 1b 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 .....H.T........ 102 | 176: 0d 1a 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d ....H.T......... 103 | 192: 19 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d 18 ...H.T.......... 104 | 208: 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d 17 00 ..H.T........... 105 | 224: 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d 16 00 00 .H.T............ 106 | 240: 48 01 54 00 01 f7 01 ec 01 c5 01 0d 15 00 00 48 H.T............H 107 | 256: 01 54 00 01 f7 01 ec 01 c5 01 0d 14 00 00 48 01 .T............H. 108 | 272: 54 00 01 f7 01 ec 01 c5 01 0d 13 00 00 48 01 54 T............H.T 109 | 288: 00 01 f7 01 ec 01 c5 01 0d 12 00 00 48 01 54 00 ............H.T. 110 | 304: 01 f7 01 ec 01 c5 01 0d 11 00 00 48 01 54 00 01 ...........H.T.. 111 | 320: f7 01 ec 01 c5 01 0d 10 00 00 48 01 54 00 01 f7 ..........H.T... 112 | 336: 01 ec 01 c5 01 0d 0f 00 00 48 01 54 00 01 f7 01 .........H.T.... 113 | 352: ec 01 c5 01 0d 0e 00 00 48 01 54 00 01 f7 01 ec ........H.T..... 114 | 368: 01 c5 01 0d 0d 00 00 48 01 54 00 01 f7 01 ec 01 .......H.T...... 115 | 384: c5 01 0d 0c 00 00 48 01 54 00 01 f7 01 ec 01 c5 ......H.T....... 116 | 400: 01 0d 0b 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 .....H.T........ 117 | 416: 0d 0a 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d ....H.T......... 118 | 432: 09 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 19 08 ...H.T.......... 119 | 448: 05 17 17 17 17 65 69 67 68 74 65 69 67 68 74 73 .....eighteights 120 | 464: 65 76 65 6e 73 65 76 65 6e 25 07 05 07 07 07 07 evenseven%...... 121 | 480: 40 18 00 00 00 00 00 00 40 18 00 00 00 00 00 00 @.......@....... 122 | 496: 40 14 00 00 00 00 00 00 40 14 00 00 00 00 00 00 @.......@....... 123 | page 10 offset 4608 124 | 0: 0d 00 00 00 1d 00 4d 00 01 f1 01 e2 01 d3 01 c4 ......M......... 125 | 16: 01 b5 01 a6 01 97 01 88 01 79 01 6a 01 5b 01 4c .........y.j.[.L 126 | 32: 01 3d 01 2e 01 1f 01 10 01 01 00 f2 00 e3 00 d4 .=.............. 127 | 48: 00 c5 00 b6 00 a7 00 98 00 89 00 7a 00 6b 00 5c ...........z.k.\ 128 | 64: 00 4d 00 00 00 00 00 00 00 00 00 00 00 0d 3e 00 .M............>. 129 | 80: 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d 3d 00 00 .H.T.........=.. 130 | 96: 48 01 54 00 01 f7 01 ec 01 c5 01 0d 3c 00 00 48 H.T.........<..H 131 | 112: 01 54 00 01 f7 01 ec 01 c5 01 0d 3b 00 00 48 01 .T.........;..H. 132 | 128: 54 00 01 f7 01 ec 01 c5 01 0d 3a 00 00 48 01 54 T.........:..H.T 133 | 144: 00 01 f7 01 ec 01 c5 01 0d 39 00 00 48 01 54 00 .........9..H.T. 134 | 160: 01 f7 01 ec 01 c5 01 0d 38 00 00 48 01 54 00 01 ........8..H.T.. 135 | 176: f7 01 ec 01 c5 01 0d 37 00 00 48 01 54 00 01 f7 .......7..H.T... 136 | 192: 01 ec 01 c5 01 0d 36 00 00 48 01 54 00 01 f7 01 ......6..H.T.... 137 | 208: ec 01 c5 01 0d 35 00 00 48 01 54 00 01 f7 01 ec .....5..H.T..... 138 | 224: 01 c5 01 0d 34 00 00 48 01 54 00 01 f7 01 ec 01 ....4..H.T...... 139 | 240: c5 01 0d 33 00 00 48 01 54 00 01 f7 01 ec 01 c5 ...3..H.T....... 140 | 256: 01 0d 32 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 ..2..H.T........ 141 | 272: 0d 31 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d .1..H.T......... 142 | 288: 30 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d 2f 0..H.T........./ 143 | 304: 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d 2e 00 ..H.T........... 144 | 320: 00 48 01 54 00 01 f7 01 ec 01 c5 01 0d 2d 00 00 .H.T.........-.. 145 | 336: 48 01 54 00 01 f7 01 ec 01 c5 01 0d 2c 00 00 48 H.T.........,..H 146 | 352: 01 54 00 01 f7 01 ec 01 c5 01 0d 2b 00 00 48 01 .T.........+..H. 147 | 368: 54 00 01 f7 01 ec 01 c5 01 0d 2a 00 00 48 01 54 T.........*..H.T 148 | 384: 00 01 f7 01 ec 01 c5 01 0d 29 00 00 48 01 54 00 .........)..H.T. 149 | 400: 01 f7 01 ec 01 c5 01 0d 28 00 00 48 01 54 00 01 ........(..H.T.. 150 | 416: f7 01 ec 01 c5 01 0d 27 00 00 48 01 54 00 01 f7 .......'..H.T... 151 | 432: 01 ec 01 c5 01 0d 26 00 00 48 01 54 00 01 f7 01 ......&..H.T.... 152 | 448: ec 01 c5 01 0d 25 00 00 48 01 54 00 01 f7 01 ec .....%..H.T..... 153 | 464: 01 c5 01 0d 24 00 00 48 01 54 00 01 f7 01 ec 01 ....$..H.T...... 154 | 480: c5 01 0d 23 00 00 48 01 54 00 01 f7 01 ec 01 c5 ...#..H.T....... 155 | 496: 01 0d 22 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 .."..H.T........ 156 | page 11 offset 5120 157 | 0: 0d 00 00 00 0a 01 6a 00 01 f1 01 e2 01 d3 01 c4 ......j......... 158 | 16: 01 b5 01 a6 01 97 01 88 01 79 01 6a 00 00 00 00 .........y.j.... 159 | 352: 00 00 00 00 00 00 00 00 00 00 0d 48 00 00 48 01 ...........H..H. 160 | 368: 54 00 01 f7 01 ec 01 c5 01 0d 47 00 00 48 01 54 T.........G..H.T 161 | 384: 00 01 f7 01 ec 01 c5 01 0d 46 00 00 48 01 54 00 .........F..H.T. 162 | 400: 01 f7 01 ec 01 c5 01 0d 45 00 00 48 01 54 00 01 ........E..H.T.. 163 | 416: f7 01 ec 01 c5 01 0d 44 00 00 48 01 54 00 01 f7 .......D..H.T... 164 | 432: 01 ec 01 c5 01 0d 43 00 00 48 01 54 00 01 f7 01 ......C..H.T.... 165 | 448: ec 01 c5 01 0d 42 00 00 48 01 54 00 01 f7 01 ec .....B..H.T..... 166 | 464: 01 c5 01 0d 41 00 00 48 01 54 00 01 f7 01 ec 01 ....A..H.T...... 167 | 480: c5 01 0d 40 00 00 48 01 54 00 01 f7 01 ec 01 c5 ...@..H.T....... 168 | 496: 01 0d 3f 00 00 48 01 54 00 01 f7 01 ec 01 c5 01 ..?..H.T........ 169 | end c4.db 170 }] 171 } {} 172 173 ifcapable !oversize_cell_check { 174 # Non SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds: 175 do_test dbfuzz001-101a { 176 db eval {PRAGMA writable_schema=on; PRAGMA integrity_check} 177 } {/Fragmentation of 384 bytes reported as 0 on page 8/} 178 } else { 179 # SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds: 180 do_catchsql_test dbfuzz001-101b { 181 PRAGMA writable_schema=on; 182 PRAGMA integrity_check; 183 } {1 {database disk image is malformed}} 184 } 185 186 # The DELETE query below deletes the very last cell from page 8. 187 # Prior to a certain fix to sqlite3BtreeDelete() and because of the 188 # corruption to the freeblock list on page 8, this would fail to 189 # cause a rebalance operation, which would leave the btree in a weird 190 # state that would lead to segfaults and or assertion faults. 191 # 192 do_execsql_test dbfuzz001-110 { 193 DELETE FROM t3 WHERE x IS NOT NULL AND +rowid=6; 194 } {} 195 196 # This is a dbfuzz2-generate test case that can cause a page with 197 # pPage->nCell==0 to enter the balancer. 198 # 199 do_test dbfuzz001-200 { 200 db deserialize [decode_hexdb { 201 | size 3076 pagesize 512 filename c03.db 202 | page 1 offset 0 203 | 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. 204 | 16: 02 00 01 01 00 40 20 20 00 00 00 0c 00 00 00 07 .....@ ........ 205 | 32: 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 04 ................ 206 | 48: 00 00 00 00 00 00 00 03 e8 00 00 01 00 00 00 00 ................ 207 | 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c ................ 208 | 96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0 ..,P............ 209 | 112: 01 56 01 86 01 2a 01 06 00 00 00 00 00 00 00 00 .V...*.......... 210 | 128: 00 00 00 00 00 00 00 00 ef 00 00 00 00 00 00 00 ................ 211 | 192: 00 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 212 | 224: 00 00 00 00 00 00 00 00 00 00 00 00 00 ff e9 00 ................ 213 | 256: 00 00 00 00 00 00 22 07 06 17 11 11 01 31 74 61 ......"......1ta 214 | 272: 62 6c 65 74 34 74 34 07 43 52 45 41 54 45 20 54 blet4t4.CREATE T 215 | 288: 41 42 4c 45 20 74 34 28 78 29 2a 06 06 17 13 11 ABLE t4(x)*..... 216 | 304: 01 3f 69 6e 64 65 78 74 33 78 74 33 06 43 52 45 .?indext3xt3.CRE 217 | 320: 41 54 45 20 49 4e 44 45 58 20 74 33 64 20 4f 4e ATE INDEX t3d ON 218 | 336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e t3(x).......Ein 219 | 352: 64 65 78 74 32 63 64 74 32 05 43 52 45 41 54 45 dext2cdt2.CREATE 220 | 368: 20 49 4e 44 45 58 20 74 32 63 64 20 4f 4e 20 74 INDEX t2cd ON t 221 | 384: 32 28 63 2c 64 29 28 05 06 17 11 11 01 3d 74 61 2(c,d)(......=ta 222 | 400: 62 6c 65 74 33 74 33 04 43 52 45 41 54 45 20 54 blet3t3.CREATE T 223 | 416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 ABLE t3(c,x,e,f) 224 | 432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74 (......=tablet2t 225 | 448: 32 03 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 2.CREATE TABLE t 226 | 464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11 2(c,d,e,f)$..... 227 | 480: 01 35 74 61 62 6c 65 74 31 74 31 02 43 52 45 41 .5tablet1t1.CREA 228 | 496: 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c 62 29 TE TABLE t1(a,b) 229 | page 2 offset 512 230 | 0: 0d 00 00 00 04 01 cf 00 01 fa 01 f3 01 de 01 cf ................ 231 | 176: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 232 | 256: 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 233 | 368: 00 00 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 ................ 234 | 416: 00 00 00 1b 00 00 00 00 04 00 00 00 00 00 00 00 ................ 235 | 448: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d ................ 236 | 464: 04 03 17 17 73 65 76 65 6e 65 69 67 68 74 13 03 ....seveneight.. 237 | 480: 03 07 07 40 14 00 00 00 00 00 00 40 18 00 00 00 ...@.......@.... 238 | 496: 00 00 00 05 02 03 01 01 03 04 04 01 03 09 01 02 ................ 239 | page 3 offset 1024 240 | 0: 0d 00 00 00 08 01 54 00 01 f7 01 ec 01 c5 01 aa ......T......... 241 | 16: 01 a1 01 96 01 6f 01 54 00 00 00 00 00 00 00 00 .....o.T........ 242 | 32: 00 00 00 00 00 00 00 03 e8 00 00 00 00 00 00 00 ................ 243 | 336: 00 00 00 00 19 08 05 16 17 17 17 65 69 67 68 74 ...........eight 244 | 352: 65 69 67 68 74 73 65 76 65 6e 73 65 76 ff ff ff eightsevensev... 245 | 368: 0e 05 07 07 07 07 40 18 00 00 00 00 00 00 40 18 ......@.......@. 246 | 384: 00 00 00 00 00 00 40 14 00 00 00 00 00 00 40 14 ......@.......@. 247 | 400: 00 00 00 00 00 00 09 06 05 01 01 01 01 04 04 03 ................ 248 | 416: 03 07 05 05 01 01 09 09 02 02 19 04 05 17 17 17 ................ 249 | 432: 17 73 65 6f 65 6e 65 69 67 68 74 65 69 67 68 74 .seoeneighteight 250 | 448: 73 65 76 65 6e 25 03 05 07 07 07 07 40 14 00 00 seven%......@... 251 | 464: 00 00 00 00 40 18 00 00 00 00 00 00 40 18 00 00 ....@.......@... 252 | 480: 00 00 00 00 40 14 00 00 00 00 00 00 09 02 05 01 ....@........... 253 | 496: 01 01 01 03 04 04 03 07 01 05 09 01 01 09 02 02 ................ 254 | page 4 offset 1536 255 | 0: 0d 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 ................ 256 | 160: 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 00 ................ 257 | 336: 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 ............ ... 258 | page 5 offset 2048 259 | 0: 0a 00 00 00 08 01 96 00 01 fa 01 c4 01 f2 01 bc ................ 260 | 16: 01 dc 01 a6 01 96 01 cc 00 00 00 00 00 00 00 00 ................ 261 | 48: 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 ................ 262 | 288: 00 00 00 00 00 00 00 00 00 64 00 00 00 2b 00 00 .........d...+.. 263 | 400: 00 00 00 00 00 00 0f 04 17 17 01 65 69 67 68 74 ...........eight 264 | 416: 65 69 6f 68 74 08 15 04 07 07 01 40 18 00 00 00 eioht......@.... 265 | 432: 00 00 00 40 18 00 00 00 00 00 00 07 07 04 01 01 ...@............ 266 | 448: 01 04 04 06 07 04 01 01 01 02 02 05 0f 04 17 17 ................ 267 | 464: 01 73 65 76 65 6e 65 69 67 68 74 04 15 04 07 07 .seveneight..... 268 | 480: 01 40 14 00 00 00 00 00 00 40 18 00 00 00 00 00 .@.......@...... 269 | 496: 00 03 07 04 01 01 01 03 04 02 05 04 09 01 09 02 ................ 270 | page 6 offset 2560 271 | 0: 0a 00 00 00 00 02 00 00 00 00 00 00 00 0d 00 00 ................ 272 | 16: 00 08 01 c2 00 01 fb 01 f6 01 f1 01 ec 01 e0 01 ................ 273 | 32: d4 01 cb 01 c2 00 00 00 00 00 00 00 00 00 00 00 ................ 274 | 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 ................ 275 | 448: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 ................ 276 | 464: 08 02 17 65 69 67 68 74 07 07 02 17 65 69 67 68 ...eight....eigh 277 | 480: 74 0a 06 02 07 40 18 00 00 00 00 00 00 0a 05 02 t....@.......... 278 | 496: 07 40 18 00 04 02 01 04 03 03 02 01 04 03 02 02 .@.............. 279 | end x/c03.db 280 }] 281 catchsql {INSERT INTO t3 SELECT * FROM t2;} 282 } {1 {database disk image is malformed}} 283 284 285 do_test dbfuzz001-310 { 286 sqlite3 db {} 287 db deserialize [decode_hexdb { 288 | size 3584 pagesize 512 filename x/c02.db 289 | page 1 offset 0 290 | 0: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 SQLite format 3. 291 | 16: 02 00 01 01 00 40 20 20 00 00 00 0c 00 00 00 07 .....@ ........ 292 | 32: 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 04 ................ 293 | 48: 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 ................ 294 | 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c ................ 295 | 96: 00 2e 2c 50 0d 00 00 00 06 01 06 00 01 da 01 b0 ..,P............ 296 | 112: 01 56 01 86 01 2a 01 06 00 00 00 00 00 00 00 00 .V...*.......... 297 | 256: 00 00 00 00 00 00 22 07 06 17 11 11 01 31 74 61 ......"......1ta 298 | 272: 62 6c 65 74 34 74 34 07 43 52 45 41 54 45 20 54 blet4t4.CREATE T 299 | 288: 41 42 4c 45 20 74 34 28 78 29 2a 06 06 17 13 11 ABLE t4(x)*..... 300 | 304: 01 3f 69 6e 64 65 78 74 33 78 74 33 05 43 52 45 .?indext3xt3.CRE 301 | 320: 41 54 45 20 49 4e 44 45 58 20 74 33 78 20 4f 4e ATE INDEX t3x ON 302 | 336: 20 74 33 28 78 29 2e 04 06 17 15 11 01 45 69 6e t3(x).......Ein 303 | 352: 64 65 78 74 32 63 64 74 32 05 43 52 45 41 54 45 dext2cdt2.CREATE 304 | 368: 20 49 4e 44 45 58 20 74 32 63 64 20 4f 4e 20 74 INDEX t2cd ON t 305 | 384: 32 28 63 2c 64 29 28 05 06 17 11 11 01 3d 74 61 2(c,d)(......=ta 306 | 400: 62 6c 65 74 33 74 33 07 43 52 45 41 54 45 20 54 blet3t3.CREATE T 307 | 416: 41 42 4c 45 20 74 33 28 63 2c 78 2c 65 2c 66 29 ABLE t3(c,x,e,f) 308 | 432: 28 02 06 17 11 11 01 3d 74 61 62 6c 65 74 32 74 (......=tablet2t 309 | 448: 32 32 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 22CREATE TABLE t 310 | 464: 32 28 63 2c 64 2c 65 2c 66 29 24 01 06 17 11 11 2(c,d,e,f)$..... 311 | 480: 01 35 74 61 62 6c 65 74 31 74 31 02 43 52 45 41 .5tablet1t1.CREA 312 | 496: 54 45 20 54 41 42 4c 45 20 74 31 28 61 2c 62 29 TE TABLE t1(a,b) 313 | page 2 offset 512 314 | 0: 0d 00 00 00 04 01 cf 00 01 fa 01 f3 01 de 01 cf ................ 315 | 160: 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 .. ............. 316 | 448: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d ................ 317 | 464: 04 03 17 17 73 65 76 65 6e 65 69 67 68 74 13 03 ....seveneight.. 318 | 480: 03 07 07 40 14 00 00 00 00 00 00 40 18 00 00 00 ...@.......@.... 319 | 496: 00 00 00 05 02 03 01 01 03 04 04 01 03 09 01 02 ................ 320 | page 3 offset 1024 321 | 0: 0d 00 00 00 08 01 54 00 01 f7 01 ec 01 c5 01 aa ......T......... 322 | 16: 01 a1 01 96 01 6f 01 54 00 00 00 00 00 00 00 00 .....o.T........ 323 | 112: 00 00 dd 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 324 | 336: 00 00 00 00 19 08 05 17 17 17 17 65 69 67 68 74 ...........eight 325 | 352: 65 69 67 68 74 73 65 76 65 6e 73 65 76 65 6e 25 eightsevenseven% 326 | 368: 07 05 07 07 07 07 40 18 00 00 00 00 00 00 40 18 ......@.......@. 327 | 384: 00 00 00 00 00 00 40 14 00 00 00 00 00 00 40 14 ......@.......@. 328 | 400: 00 00 00 00 00 00 09 06 05 01 01 01 01 04 04 03 ................ 329 | 416: 03 07 05 05 01 01 09 09 02 02 19 04 05 17 17 17 ................ 330 | 432: 17 73 65 76 65 6e 65 69 67 68 74 65 69 67 68 74 .seveneighteight 331 | 448: 73 65 76 65 6e 25 03 05 07 07 07 07 40 14 00 00 seven%......@... 332 | 464: 00 00 00 00 40 18 00 00 00 00 00 00 40 18 00 00 ....@.......@... 333 | 480: 00 00 00 00 40 14 00 00 00 00 00 00 09 02 05 01 ....@........... 334 | 496: 01 01 01 03 04 04 03 07 01 05 09 01 01 09 02 02 ................ 335 | page 4 offset 1536 336 | 0: 0d 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ................ 337 | 192: 00 00 00 00 00 00 7f 00 00 00 00 00 00 00 00 00 ................ 338 | 208: 00 e5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 339 | page 5 offset 2048 340 | 0: 0a 00 00 00 08 01 96 00 01 fa 01 c4 01 f2 01 bc ................ 341 | 16: 01 dc 01 a6 01 96 01 cc 00 00 00 00 00 00 00 00 ................ 342 | 240: 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 ................ 343 | 400: 00 00 00 00 00 00 0f 04 17 07 01 65 69 67 68 74 ...........eight 344 | 416: 65 69 67 68 74 08 15 04 07 07 01 40 18 00 00 00 eight......@.... 345 | 432: 00 00 00 40 18 00 00 00 00 00 00 07 07 04 01 01 ...@............ 346 | 448: 01 04 04 06 07 04 01 01 01 02 02 05 0f 04 17 17 ................ 347 | 464: 01 73 65 76 65 6e 65 69 67 68 74 04 15 04 07 07 .seveneight..... 348 | 480: 01 40 14 00 00 00 00 00 00 40 18 00 00 00 00 00 .@.......@...... 349 | 496: 00 03 07 04 01 01 01 03 04 02 05 04 09 01 09 02 ................ 350 | page 6 offset 2560 351 | 0: 0a 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ................ 352 | 464: 00 00 00 00 00 00 00 00 00 00 7f 00 00 00 00 00 ................ 353 | page 7 offset 3072 354 | 0: 0d 00 00 00 08 01 c2 00 01 fb 01 f6 01 f1 01 ec ................ 355 | 16: 01 e0 01 d4 01 cb 01 c2 00 00 00 00 00 00 00 00 ................ 356 | 448: 00 00 07 08 02 17 65 69 67 68 74 07 07 02 17 65 ......eight....e 357 | 464: 69 67 68 74 0a 06 02 07 40 18 00 00 00 00 00 00 ight....@....... 358 | 480: 0a 05 02 07 40 18 00 00 00 00 00 00 03 04 02 01 ....@........... 359 | 496: 04 03 03 02 01 04 03 02 02 01 02 03 01 02 01 02 ................ 360 | end x/c02.db 361 }] 362 } {} 363 364 extra_schema_checks 0 365 do_catchsql_test dbfuzz001-320 { 366 PRAGMA integrity_check; 367 } {1 {database disk image is malformed}} 368 369 do_catchsql_test dbfuzz001-330 { 370 DELETE FROM t3 WHERE x IN (SELECT x FROM t4); 371 } {1 {database disk image is malformed}} 372 extra_schema_checks 1 373 374 finish_test