diff --git a/manifest b/manifest index fac0eaf63c..c2c48a1761 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Mark\san\sunreachable\sbranch\susing\sALWAYS(). -D 2019-07-14T00:15:07.292 +C Fix\sa\sproblem\sthat\scould\scause\sa\scrash\sif\sa\sblob\shandle\swere\sclosed\safter\sthe\sassociated\sdatabase\shandle\swas\sclosed\susing\ssqlite3_close_v2(). +D 2019-07-15T13:58:28.470 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -599,7 +599,7 @@ F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237 F src/vdbeInt.h 889c52272a02cea8af6e21b493b08bc9a043e3372a77fdfe838d25e73a47ac92 F src/vdbeapi.c f9161e5c77f512fbb80091ce8af621d19c9556bda5e734cffaac1198407400da F src/vdbeaux.c eb2b67dcf65e71fd11d977961220f9d1888fb60bbf3730eb60ff971c68dc7dd5 -F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191 +F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b1 F src/vdbemem.c f6f277d17d50972571d1394535d4c3d156fdea871d8f327f5b9479984054015a F src/vdbesort.c 66592d478dbb46f19aed0b42222325eadb84deb40a90eebe25c6e7c1d8468f47 F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143f0 @@ -727,7 +727,7 @@ F test/cast.test 3619f0c58c2e4b2a94aa86e75607e497d34ef40ab74418e71aef7b4ca515589 F test/cffault.test 9d6b20606afe712374952eec4f8fd74b1a8097ef F test/check.test dcc952a127c394ce0de2aa634d26c78207e855327cc63a24d3638ca8fbfa641e F test/chunksize.test 427d87791743486cbf0c3b8c625002f3255cb3a89c6eba655a98923b1387b760 -F test/close.test 799ea4599d2f5704b0a30f477d17c2c760d8523fa5d0c8be4a7df2a8cad787d8 +F test/close.test eccbad8ecd611d974cbf47278c3d4e5874faf02d811338d5d348af42d56d647c F test/closure01.test 9905883f1b171a4638f98fc764879f154e214a306d3d8daf412a15e7f3a9b1e0 F test/coalesce.test cee0dccb9fbd2d494b77234bccf9dc6c6786eb91 F test/collate1.test f9b653f515ef3324a0c4e3c6adbf136bb1903622af678d482a60c11c9c054e6c @@ -1835,7 +1835,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 85fd70fead834aed16cffbea892b2255b4e10dd677f4dbbb96062d5ff42efdeb -R 2916789ca16bd517dcf20e2c1512a43b -U drh -Z 6e17128a6889867592c726db142aced4 +P 0fff105a3e501fd91877d67761459eb0323e6cf79916242027cce0d05697f554 +R 3e1676b4ed91442ef96f61576ecdb210 +U dan +Z a9ed82eb59dfd0268931c636761499e0 diff --git a/manifest.uuid b/manifest.uuid index d859b76fec..83ce398524 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0fff105a3e501fd91877d67761459eb0323e6cf79916242027cce0d05697f554 \ No newline at end of file +52f463d29407fad691c42b13462880e7605603c9be9f480d18e953a0ef78149a \ No newline at end of file diff --git a/src/vdbeblob.c b/src/vdbeblob.c index 4279792696..d34e3cf9f4 100644 --- a/src/vdbeblob.c +++ b/src/vdbeblob.c @@ -355,11 +355,12 @@ int sqlite3_blob_close(sqlite3_blob *pBlob){ sqlite3 *db; if( p ){ + sqlite3_stmt *pStmt = p->pStmt; db = p->db; sqlite3_mutex_enter(db->mutex); - rc = sqlite3_finalize(p->pStmt); sqlite3DbFree(db, p); sqlite3_mutex_leave(db->mutex); + rc = sqlite3_finalize(pStmt); }else{ rc = SQLITE_OK; } diff --git a/test/close.test b/test/close.test index 99bc7255e2..107c7a782e 100644 --- a/test/close.test +++ b/test/close.test @@ -79,4 +79,11 @@ do_test 1.4.4 { sqlite3_finalize $STMT } {SQLITE_OK} +do_test 1.5 { + set DB [sqlite3_open test.db] + sqlite3_blob_open $DB main t1 x 2 0 BLOB + sqlite3_close_v2 $DB + sqlite3_blob_close $BLOB +} {} + finish_test