]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an assert that can fail if the schema is corrupt.
authordrh <drh@noemail.net>
Sun, 17 Nov 2019 11:47:50 +0000 (11:47 +0000)
committerdrh <drh@noemail.net>
Sun, 17 Nov 2019 11:47:50 +0000 (11:47 +0000)
FossilOrigin-Name: ed57c48e4bb337810521bda2da79614313e4835a317ca4eadb52bd67e4eadf98

manifest
manifest.uuid
src/btree.c

index daeedd7d2da1e7745ba8571c176b3276c961f94b..d256e1644bf6d2fddb4556339edcfcbf00b64813 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Better\sdetection\sof\scorruption\sin\sthe\s%_stat\sand\s%_docsize\sshadow\stables\nof\sFTS3.
-D 2019-11-17T02:41:06.494
+C Fix\san\sassert\sthat\scan\sfail\sif\sthe\sschema\sis\scorrupt.
+D 2019-11-17T11:47:50.999
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -467,7 +467,7 @@ F src/auth.c a3d5bfdba83d25abed1013a8c7a5f204e2e29b0c25242a56bc02bb0c07bf1e06
 F src/backup.c f70077d40c08b7787bfe934e4d1da8030cb0cc57d46b345fba2294b7d1be23ab
 F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
-F src/btree.c 12e251f8c3eaad05e6d0db94772bf779b3a644e18d884025da6bcbc98cad1d22
+F src/btree.c b43507671f291ed874e469517b3b333d2743c190def89cae4e1dccd6d5473a9d
 F src/btree.h f27a33c49280209a93385e218306c4ee5f46ba8d7649d2f81a7166b282232484
 F src/btreeInt.h 91806f01fd1145a9a86ba3042f25c38d8faf6002701bf5e780742cf88bcff437
 F src/build.c fe0b0b6dfab27a6f5778bd3dba8db879fda114c1d524a9597e5195ac55c8d01b
@@ -1849,7 +1849,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 8bd75bf636f72f32d66c6c38e1918f27daf2f13290f00a001f41d50838bbda47
-R 8cd04f5b2ab31e4e6a20c98f6ee3e287
+P 1e449687881f4d388e54a0e51bcabba41ab10cf7e596ff65e31e88a23c70d497
+R 34046cb8959003a11a67b66c8db4d70c
 U drh
-Z 4bb0986828ea646d1a8a470b5245a8a1
+Z b99bb99bc2fe46e8b5443bc31b14c739
index c5db53568dcb5e2b59fc32a028e2f737592293f5..8ce68a37aa831b1cb913a44666ff6d7d41d2b03c 100644 (file)
@@ -1 +1 @@
-1e449687881f4d388e54a0e51bcabba41ab10cf7e596ff65e31e88a23c70d497
\ No newline at end of file
+ed57c48e4bb337810521bda2da79614313e4835a317ca4eadb52bd67e4eadf98
\ No newline at end of file
index b4c787edbf6c231afd44ea3579add3c4e075d013..57634f69bb094b28cff37a8d6167cb597263b928 100644 (file)
@@ -4365,8 +4365,9 @@ static int btreeCursor(
   /* The following assert statements verify that if this is a sharable 
   ** b-tree database, the connection is holding the required table locks, 
   ** and that no other connection has any open cursor that conflicts with 
-  ** this lock.  */
-  assert( hasSharedCacheTableLock(p, iTable, pKeyInfo!=0, (wrFlag?2:1)) );
+  ** this lock.  The iTable<1 term disables the check for corrupt schemas. */
+  assert( hasSharedCacheTableLock(p, iTable, pKeyInfo!=0, (wrFlag?2:1))
+          || iTable<1 );
   assert( wrFlag==0 || !hasReadConflicts(p, iTable) );
 
   /* Assert that the caller has opened the required transaction. */