]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Prevent an assert() from failing if sqlite3_blob_reopen() is called on a blob-handle...
authordan <Dan Kennedy>
Wed, 14 Apr 2021 15:25:10 +0000 (15:25 +0000)
committerdan <Dan Kennedy>
Wed, 14 Apr 2021 15:25:10 +0000 (15:25 +0000)
FossilOrigin-Name: b5dc7aba036cfd6d09c68dd17608328063634ca99ff341f97bab2dc2a1f59b11

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

index db9df205af2e7c5d156be887b7bb3fa22d1f358e..1a10cf633d4c4ac0e6fbf99a67d1e24abf267fc7 100644 (file)
@@ -1045,5 +1045,163 @@ do_test rtreefuzz001-500 {
   catchsql {UPDATE t1 SET ex= ex ISNULL}
 } {1 {database disk image is malformed}}
 
+do_test rtreefuzz001-600 {
+  sqlite3 db {}
+  db deserialize [decode_hexdb {
+| size 20480 pagesize 4096 filename crash-7b37d80f000235.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 05   .....@  ........
+|     32: 00 00 00 00 00 00 00 00 00 00 10 06 00 00 00 04   ................
+|     96: 00 00 00 00 0d 00 00 00 05 0e 49 00 0f 99 0f 40   ..........I....@
+|    112: 0e da 0e 8f 0e 49 00 00 00 00 00 00 00 00 00 00   .....I..........
+|   3648: 00 00 00 00 00 00 00 00 00 44 05 06 17 15 15 08   .........D......
+|   3664: 6f 74 61 62 6c 65 67 65 6f 31 67 65 6f 31 43 52   otablegeo1geo1CR
+|   3680: 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42   EATE VIRTUAL TAB
+|   3696: 4c 45 20 67 65 6f 31 20 55 53 49 4e 47 20 67 65   LE geo1 USING ge
+|   3712: 6f 70 6f 6c 79 28 74 79 70 65 2c 63 6c 72 29 49   opoly(type,clr)I
+|   3728: 04 06 17 1f 1f 01 63 74 61 62 6c 65 71 75 65 72   ......ctablequer
+|   3744: 79 70 6f 6c 79 71 75 65 72 79 70 6f 6c 79 05 43   ypolyquerypoly.C
+|   3760: 52 45 41 54 45 20 54 41 42 4c 45 20 71 75 65 72   REATE TABLE quer
+|   3776: 79 70 6f 6c 79 28 70 6f 6c 79 20 4a 53 4f 4e 2c   ypoly(poly JSON,
+|   3792: 20 63 6c 72 20 54 45 58 54 29 64 03 07 17 23 23    clr TEXT)d...##
+|   3808: 01 81 0f 74 61 62 6c 65 67 65 6f 31 5f 70 61 72   ...tablegeo1_par
+|   3824: 65 6e 74 67 65 6f 31 5f 70 61 72 65 6e 74 04 43   entgeo1_parent.C
+|   3840: 52 45 41 54 45 20 54 41 42 4c 45 20 22 67 65 6f   REATE TABLE .geo
+|   3856: 31 5f 70 61 72 65 6e 74 22 28 6e 6f 64 65 6e 6f   1_parent.(nodeno
+|   3872: 20 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59    INTEGER PRIMARY
+|   3888: 20 4b 45 59 2c 70 61 72 65 6e 74 6e 6f 64 85 29    KEY,parentnod.)
+|   3904: 57 02 06 17 1f 1f 01 7f 74 61 62 6c 65 67 65 6f   W.......tablegeo
+|   3920: 31 5f 6e 6f 64 65 67 65 6f 31 5f 6e 6f 64 65 03   1_nodegeo1_node.
+|   3936: 43 52 45 41 54 45 20 54 41 42 4c 45 20 22 67 65   CREATE TABLE .ge
+|   3952: 6f 31 5f 6e 6f 64 65 22 28 6e 6f 64 65 6e 6f 20   o1_node.(nodeno 
+|   3968: 49 4e 54 45 47 45 52 20 50 52 49 4d 41 52 59 20   INTEGER PRIMARY 
+|   3984: 4b 45 59 2c 64 61 74 61 29 65 01 07 17 21 21 01   KEY,data)e...!!.
+|   4000: 81 15 74 61 62 6c 65 67 65 6f 31 5f 72 6f 77 69   ..tablegeo1_rowi
+|   4016: 64 67 65 6f 31 5f 72 6f 77 69 64 02 43 52 45 41   dgeo1_rowid.CREA
+|   4032: 54 45 20 54 41 42 4c 45 20 22 67 65 6f 31 5f 72   TE TABLE .geo1_r
+|   4048: 6f 77 69 64 22 28 72 6f 77 69 64 20 49 4e 54 45   owid.(rowid INTE
+|   4064: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 2c   GER PRIMARY KEY,
+|   4080: 6e 6f 64 65 6e 6f 2c 61 30 2c 61 31 2c 61 32 29   nodeno,a0,a1,a2)
+| page 2 offset 4096
+|      0: 0d 00 00 00 0a 0d ab 00 0f c9 0f 88 0f 48 0f 00   .............H..
+|   3488: 00 00 00 00 00 00 00 00 00 00 00 45 82 0a 06 00   ...........E....
+|   3504: 09 74 1d 13 01 00 00 06 00 80 b5 43 00 80 ac 43   .t.........C...C
+|   3520: 00 00 bd 43 8f 82 9f 43 71 fd c9 43 8f 02 a7 43   ...C...Cq..C...C
+|   3536: 71 fd c8 43 e4 bd a8 43 64 bb bd 43 f4 3d a2 43   q..C...Cd..C.=.C
+|   3552: 64 3b b7 43 00 80 ad 43 61 6e 67 6c 65 2d 33 30   d;.C...Cangle-30
+|   3568: 72 65 64 32 81 4e 06 00 09 44 23 17 01 00 00 03   red2.N...D#.....
+|   3584: 00 40 3f 44 00 c0 20 44 00 c0 46 44 00 c0 20 44   .@?D.. D..FD.. D
+|   3600: 00 00 43 44 00 40 28 44 74 72 69 61 6e 67 6c 65   ..CD.@(Dtriangle
+|   3616: 2d 33 30 62 6c 61 63 6b 35 82 3e 06 00 09 54 1d   -30black5.>...T.
+|   3632: 13 01 00 00 04 00 40 54 44 00 80 1d 44 9a c9 5c   ......@TD...D...
+|   3648: 44 66 36 1b 44 33 13 5f 44 00 c0 23 44 9a 89 5b   Df6.D3._D..#D..[
+|   3664: 44 a4 60 1d 44 61 72 72 6f 77 2d 35 30 72 65 64   D.`.Darrow-50red
+|   3680: 36 74 06 00 09 54 1b 17 01 00 00 04 00 80 0d 44   6t...T.........D
+|   3696: 00 00 f2 42 0a d7 04 44 00 00 ca 42 0a 77 05 44   ...B...D...B.w.D
+|   3712: 0a 57 c1 42 00 20 0e 44 0a 57 e9 42 6c 69 6e 65   .W.B. .D.W.Bline
+|   3728: 2d 34 30 67 72 65 65 6e 36 72 06 00 09 54 1b 17   -40green6r...T..
+|   3744: 01 00 00 04 00 00 7b 43 00 00 ea 42 29 5c 58 43   .......C...B).XC
+|   3760: 00 00 c2 42 29 dc 5a 43 0a 57 b9 42 00 80 7d 43   ...B).ZC.W.B...C
+|   3776: 0a 57 e1 42 6c 69 6e 65 2d 34 30 67 72 65 65 6e   .W.Bline-40green
+|   3792: 36 54 06 00 09 54 1b 17 01 00 00 04 00 00 a2 43   6T...T.........C
+|   3808: 00 00 24 44 00 00 b6 43 00 00 24 44 00 00 b6 43   ..$D...C..$D...C
+|   3824: 00 40 25 44 00 00 a2 43 00 40 25 44 6c 69 6e 65   .@%D...C.@%Dline
+|   3840: 2d 34 30 62 6c 61 63 6b 3e 37 06 00 09 64 1d 15   -40black>7...d..
+|   3856: 01 00 00 05 00 80 f0 43 00 00 54 43 66 16 01 44   .......C..TCf..D
+|   3872: 66 a6 30 43 cd ec 09 44 00 00 54 43 8f 0a 09 44   f.0C...D..TC...D
+|   3888: a4 d0 73 43 66 16 01 44 9a 59 77 43 68 6f 75 73   ..sCf..D.YwChous
+|   3904: 65 2d 37 30 62 6c 75 65 3e 35 06 00 09 64 1d 15   e-70blue>5...d..
+|   3920: 01 00 00 05 00 00 a2 43 00 00 5a 43 cd ac b3 43   .......C..ZC...C
+|   3936: 66 a6 36 43 9a 59 c5 43 00 00 5a 43 1f 95 c3 43   f.6C.Y.C..ZC...C
+|   3952: a4 d0 79 43 cd ac b3 43 9a 59 7d 43 68 6f 75 73   ..yC...C.Y.Chous
+|   3968: 65 2d 37 30 62 6c 75 65 3f 2c 06 00 09 64 1d 17   e-70blue?,...d..
+|   3984: 01 00 00 05 00 00 f5 43 00 00 2f 43 00 00 07 44   .......C../C...D
+|   4000: 00 00 2f 43 00 00 07 44 00 00 61 43 00 c0 00 44   ../C...D..aC...D
+|   4016: 00 00 75 43 00 00 f5 43 00 00 61 43 68 6f 75 73   ..uC...C..aChous
+|   4032: 65 2d 37 30 62 6c 61 63 6b 35 1f 06 10 09 54 19   e-70black5....T.
+|   4048: 17 01 00 00 04 00 00 9b 43 00 00 67 43 0a 57 92   ........C..gC.W.
+|   4064: 43 00 00 5d 43 0a 57 97 43 14 ae 4b 42 ff ff a0   C..]C.W.C..KB...
+|   4080: 43 14 ae 55 43 62 6f 78 2d 32 30 67 72 65 65 6e   C..UCbox-20green
+| page 3 offset 8192
+|      0: 0d 00 00 00 01 0b 2d 00 0b 2e 00 00 00 00 00 00   ......-.........
+|   2848: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89 50   ...............P
+|   2864: 01 04 00 93 24 00 00 00 0a 00 00 00 00 00 00 01   ....$...........
+|   2880: 0a 43 b5 80 00 43 c9 fd 71 43 9f 82 8f 43 ad 80   .C...C..qC...C..
+|   2896: 00 00 00 00 00 00 00 00 72 43 58 5c 29 43 7d 80   ........rCX.)C..
+|   2912: 00 42 b9 57 0a 42 ea 00 00 00 00 00 00 00 00 00   .B.W.B..........
+|   2928: 35 43 a2 00 00 43 c5 59 9a 43 36 a6 66 43 7d 59   5C...C.Y.C6.fC.Y
+|   2944: 9a 00 00 00 00 00 00 00 1f 43 92 57 0a 43 a0 00   .........C.W.C..
+|   2960: 00 43 4b ae 14 43 67 00 00 00 00 00 00 00 00 00   .CK..Cg.........
+|   2976: 37 43 f0 80 00 44 09 ec cd 43 30 a6 66 43 77 59   7C...D...C0.fCwY
+|   2992: 9a 00 00 00 00 00 00 00 2c 43 f5 00 00 44 07 00   ........,C...D..
+|   3008: 00 43 2f 00 00 43 75 00 00 00 00 00 00 00 00 00   .C/..Cu.........
+|   3024: 74 44 04 d7 0a 44 0e 20 00 42 c1 57 0a 42 f2 00   tD...D. .B.W.B..
+|   3040: 00 00 00 00 00 00 00 00 ce 44 3f 40 00 44 46 c0   .........D?@.DF.
+|   3056: 00 44 20 c0 00 44 28 40 00 00 00 00 00 00 00 00   .D ..D(@........
+|   3072: be 44 54 40 00 44 5f 13 33 44 1b 36 66 44 23 c0   .DT@.D_.3D.6fD#.
+|   3088: 00 00 00 00 00 00 00 00 54 43 a2 00 00 43 b6 00   ........TC...C..
+|   3104: 00 44 24 00 00 44 25 40 00 00 00 00 00 00 00 00   .D$..D%@........
+|   3120: 54 43 a2 00 00 43 b6 00 00 44 24 00 00 44 25 40   TC...C...D$..D%@
+|   3136: 00 00 00 00 00 00 00 00 54 43 a2 00 00 43 b6 00   ........TC...C..
+|   3152: 00 44 24 00 00 44 25 40 00 00 00 00 00 00 00 00   .D$..D%@........
+|   3168: 54 43 a2 00 00 43 b6 00 00 44 24 00 00 44 25 40   TC...C...D$..D%@
+|   3184: 00 00 00 00 00 00 00 00 54 43 a2 00 00 43 b6 00   ........TC...C..
+|   3200: 00 44 24 00 00 44 25 40 00 00 00 00 00 00 00 00   .D$..D%@........
+|   3216: 54 43 a2 00 00 43 b6 00 00 44 24 00 00 44 25 40   TC...C...D$..D%@
+|   3232: 00 00 00 00 00 00 00 00 54 43 a2 00 00 43 b6 00   ........TC...C..
+|   3248: 00 44 24 00 00 44 25 40 00 00 00 00 00 00 00 00   .D$..D%@........
+|   3264: 54 43 a2 00 00 43 b6 00 00 44 24 00 00 44 25 40   TC...C...D$..D%@
+|   3280: 00 00 00 00 00 00 00 00 54 43 a2 00 00 43 b6 00   ........TC...C..
+|   3296: 00 44 24 00 00 44 25 40 00 00 00 00 00 00 00 00   .D$..D%@........
+|   3312: 54 43 a2 00 00 43 b6 00 00 44 24 00 00 44 25 40   TC...C...D$..D%@
+|   3328: 00 00 00 00 00 00 00 00 54 43 a2 00 00 43 b6 00   ........TC...C..
+|   3344: 00 44 24 00 00 44 25 40 00 00 00 00 00 00 00 01   .D$..D%@........
+|   3360: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+|   3376: 00 00 00 00 00 00 00 01 36 44 53 e0 00 44 56 bb   ........6DS..DV.
+|   3392: 64 43 71 34 bc 43 7d 00 00 00 00 00 00 00 00 01   dCq4.C..........
+|   3408: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+|   3424: 00 00 00 00 00 00 00 01 36 44 53 e0 00 44 56 bb   ........6DS..DV.
+|   3440: 64 43 71 34 bc 43 7d 00 00 00 00 00 00 00 00 01   dCq4.C..........
+|   3456: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+|   3472: 00 00 00 00 00 00 00 01 36 44 53 e0 00 44 56 bb   ........6DS..DV.
+|   3488: 64 43 71 34 bc 43 7d 00 00 00 00 00 00 00 00 01   dCq4.C..........
+|   3504: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+|   3520: 00 00 00 00 00 00 00 01 36 44 53 e0 00 44 56 bb   ........6DS..DV.
+|   3536: 64 43 71 34 bc 43 7d 00 00 00 00 00 00 00 00 01   dCq4.C..........
+|   3552: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+|   3568: 00 00 00 00 00 00 00 01 36 44 53 e0 00 44 56 bb   ........6DS..DV.
+|   3584: 64 43 71 34 bc 43 7d 00 00 00 00 00 00 00 00 01   dCq4.C..........
+|   3600: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+|   3616: 00 00 00 00 00 00 00 01 36 44 53 e0 00 44 56 bb   ........6DS..DV.
+|   3632: 64 43 71 34 bc 43 7d 00 00 00 00 00 00 00 00 01   dCq4.C..........
+|   3648: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+|   3664: 00 00 00 00 00 00 00 01 36 44 53 e0 00 44 56 bb   ........6DS..DV.
+|   3680: 64 43 71 34 bc 43 7d 00 00 00 00 00 00 00 00 01   dCq4.C..........
+|   3696: 36 44 53 e0 00 44 56 bb 64 43 71 34 bc 43 7d 00   6DS..DV.dCq4.C..
+| page 4 offset 12288
+|      0: 0d 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   ................
+| page 5 offset 16384
+|      0: 0d 00 00 00 01 0f 8f 00 00 00 00 00 00 00 00 00   ................
+|   3968: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6f   ...............o
+|   3984: 01 04 81 57 19 5b 5b 33 30 30 2c 33 30 30 5d 2c   ...W.[[300,300],
+|   4000: 5b 34 30 30 2c 33 35 30 5d 2c 5b 35 30 30 2c 32   [400,350],[500,2
+|   4016: 35 30 5d 2c 5b 34 38 30 2c 35 30 30 5d 2c 5b 34   50],[480,500],[4
+|   4032: 30 30 2c 34 38 30 5d 2c 5c 33 30 30 2c 35 35 30   00,480],.300,550
+|   4048: 5d 2c 5b 32 38 30 2c 34 35 30 5d 2c 5b 33 32 30   ],[280,450],[320
+|   4064: 2c 34 30 30 5d 2c 5b 32 38 30 2c 33 35 30 5d 2c   ,400],[280,350],
+|   4080: 5b 33 30 30 2c 33 30 00 00 00 00 00 00 00 00 00   [300,30.........
+| end crash-7b37d80f000235.db
+}]} {}
+
+do_catchsql_test rtreefuzz001-601 {
+  SAVEPOINT one;
+  UPDATE geo1 SET clr=CASE WHEN rowid IN ( SELECT geo1.rowid FROM geo1, querypoly ) THEN 'e' ELSE 'blue' END;
+} {1 {database disk image is malformed}}
+
+do_catchsql_test rtreefuzz001-602 {
+  SELECT geopoly_svg(_shape, printf('j',geo1.clr)) 
+    FROM geo1, querypoly WHERE geopoly_overlap(_shape, poly);
+} {1 {database disk image is malformed}}
 
 finish_test
index 9829a0ca1c6d0e84d94760a0539e34c49f799226..f7000bbdfd8df24f0d8b13e072df721a6cde5ad8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\spotential\scrash\swhen\susing\sjson_group_array()\sas\sa\swindow\sfunction.
-D 2021-04-14T12:11:39.100
+C Prevent\san\sassert()\sfrom\sfailing\sif\ssqlite3_blob_reopen()\sis\scalled\son\sa\sblob-handle\sthat\shas\salready\shit\san\sSQLITE_CORRUPT\serror.
+D 2021-04-14T15:25:10.656
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -418,7 +418,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 eef1ed593bb15886cd5d5367a2f2492f81e315848896cdf7afb6e21454978827
+F ext/rtree/rtreefuzz001.test 61bb834390f25d6c7eb46391170a473265f2029f748695924da46caf7db22dd7
 F ext/rtree/sqlite3rtree.h 03c8db3261e435fbddcfc961471795cbf12b24e03001d0015b2636b0f3881373
 F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
 F ext/rtree/util/randomshape.tcl 54ee03d0d4a1c621806f7f44d5b78d2db8fac26e0e8687c36c4bd0203b27dbff
@@ -619,7 +619,7 @@ F src/vdbe.h 25dabb25c7e157b84e59260cfb5b466c3ac103ede9f36f4db371332c47601abe
 F src/vdbeInt.h 000d9ab1ea4cb55a80de15e28f3f595645b4fddef34bca4347fb3db8031d9041
 F src/vdbeapi.c 4a43e303ec3354c785f453e881521969378e85628278ab74ba4a9df790c0d93b
 F src/vdbeaux.c 1ffaf15d48b1678dfd403c02ee60061c10a5dd447051860e793cd3393ab019fe
-F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1
+F src/vdbeblob.c 37d627ef71aca9a11b3c4063b3d7f1a5f14c4364f9abded40016e37bf15ba392
 F src/vdbemem.c 947f2a65910edb4014dc981d33e414a68c51f169f9df8c4c493a0ba840b6eb1f
 F src/vdbesort.c f5b5e473a7cee44e47a94817b042fd7172cf3aa2c0a7928a8339d612bcfdec5a
 F src/vdbetrace.c 666c6fd9f1b62be6999e072a45b913e3c2c3518bc60dfd4d54fe304130acb724
@@ -1912,7 +1912,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 427e83eb583a4f63650912f078122e7373fe8c7ea11acfdab464d748b4235261
-R ceae815ce2ef1a29e9ff09e2a73419d0
+P 3c266690c753d093c2cb74138a46ed69276d85cd119d687a6858c84211e84eaf
+R 1229821373c94710c6cfca65316fcc76
 U dan
-Z b89ff9094a0d8891dc70faa756674a50
+Z d1d1b9d93c24f2fe354e7ba5f2704dee
index 894a8daa30cfe75a90ffc6079cfb47e942ebee5e..5b985ac25b4c012347c69e2db081d02a6b74380d 100644 (file)
@@ -1 +1 @@
-3c266690c753d093c2cb74138a46ed69276d85cd119d687a6858c84211e84eaf
\ No newline at end of file
+b5dc7aba036cfd6d09c68dd17608328063634ca99ff341f97bab2dc2a1f59b11
\ No newline at end of file
index d34e3cf9f4a7090f9ca11e35c4c963b999ee0b32..47e3497dd06825bdec87a765b20be7848c26853f 100644 (file)
@@ -491,6 +491,7 @@ int sqlite3_blob_reopen(sqlite3_blob *pBlob, sqlite3_int64 iRow){
     rc = SQLITE_ABORT;
   }else{
     char *zErr;
+    ((Vdbe*)p->pStmt)->rc = SQLITE_OK;
     rc = blobSeekToRow(p, iRow, &zErr);
     if( rc!=SQLITE_OK ){
       sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr);