From: drh <> Date: Sun, 2 Jan 2022 17:37:56 +0000 (+0000) Subject: Do not raise an SQLITE_SCHEMA error if in sqlite3Init(). Fix for PoC #2 in X-Git-Tag: version-3.37.2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f2b676b7b965ed48ac16ee2b852ba80c75e54a3;p=thirdparty%2Fsqlite.git Do not raise an SQLITE_SCHEMA error if in sqlite3Init(). Fix for PoC #2 in [forum:/forumpost/b03d86f951|forum post b03d86f951]. See TH3 for test cases. FossilOrigin-Name: 25beca31cf3dbad0e78085c5ceed797a461cfaddc2d41fb7a093aa27098e50d5 --- diff --git a/manifest b/manifest index 3d4e454789..ee86a82d55 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\sobscure\sproblem\swith\sreleasing\ssavepoints\sstored\sin\san\sin-memory\sjournal\sthat\scould\scause\ssubsequent\ssavepoint\srollback\sto\sfail. -D 2022-01-02T17:24:29.361 +C Do\snot\sraise\san\sSQLITE_SCHEMA\serror\sif\sin\ssqlite3Init().\s\sFix\sfor\sPoC\s#2\sin\n[forum:/forumpost/b03d86f951|forum\spost\sb03d86f951].\s\sSee\sTH3\sfor\stest\ncases. +D 2022-01-02T17:37:56.350 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -546,7 +546,7 @@ F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586 F src/pcache1.c 54881292a9a5db202b2c0ac541c5e3ef9a5e8c4f1c1383adb2601d5499a60e65 F src/pragma.c c536665ce8431c8b1efbf7e0a5c01852f49f7bf28f1954f8118b2d28e4a3797f F src/pragma.h 87330ed2fbfa2a1274de93ca0ab850fba336189228cb256089202c3b52766fad -F src/prepare.c 40961a1170a4c4151a90dae29dd00fc6c155f1af8246abeeeb8f0a10b3fb9719 +F src/prepare.c dab0c2995a33ee2c458354cb7dd13b2b33362425c52301e41d833add7660e7ca F src/printf.c 5901672228f305f7d493cbc4e7d76a61a5caecdbc1cd06b1f9ec42ea4265cf8d F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c F src/resolve.c 4a1db4aadd802683db40ca2dbbb268187bd195f10cbdb7206dbd8ac988795571 @@ -1935,9 +1935,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 0829c1001bcfadf0d0af2b2c2e01ed60b24156b7c4e7c49cb29f3002ce8e36db -Q +73c2b50211d3ae26aeb89976ec7b9fcd7de9f152b283ec7d0809ad18bddc603e -R 8fce85bbd2bb661ea6c0332a755c21b5 +P 3c0806e4df3ba795962b0111236b2b6f27f63a35a02055c251f750ef02622803 +Q +e199a851e316bd471bfc54204b8c250d3ae93b829261214158a2c74acad4093e +R 23f8b8f954c8c0162ca9e2ead8fdaf4b U drh -Z c48d6ebc9db6bd5cb4722ed1f910241c +Z f2d49b9319fb34c7e1cb58389cf30efe # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 59efdfb4a9..42afe5d7a4 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -3c0806e4df3ba795962b0111236b2b6f27f63a35a02055c251f750ef02622803 \ No newline at end of file +25beca31cf3dbad0e78085c5ceed797a461cfaddc2d41fb7a093aa27098e50d5 \ No newline at end of file diff --git a/src/prepare.c b/src/prepare.c index 183a749a5f..97541beacb 100644 --- a/src/prepare.c +++ b/src/prepare.c @@ -747,7 +747,7 @@ static int sqlite3Prepare( sParse.checkSchema = 0; } if( sParse.rc!=SQLITE_OK && sParse.rc!=SQLITE_DONE ){ - if( sParse.checkSchema ){ + if( sParse.checkSchema && db->init.busy==0 ){ schemaIsValid(&sParse); } if( sParse.pVdbe ){