]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
All TCL tests now passing.
authordrh <drh@noemail.net>
Wed, 22 Jul 2020 17:12:59 +0000 (17:12 +0000)
committerdrh <drh@noemail.net>
Wed, 22 Jul 2020 17:12:59 +0000 (17:12 +0000)
FossilOrigin-Name: 4c5f3c6cacf84a36d0347790d98d82d1f584cd1537a13a2736348405c4d20367

manifest
manifest.uuid
src/btree.c
src/btree.h
test/corrupt3.test

index 90d6ba6c1ff00e34fab6569f6499f6c6154d1d6b..b8892c1ce20c578149babb6354d37f121a2be454 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,9 +1,9 @@
 B d2aac001204621062e6cb3230ce2ac1b4545cb83b3ebb6bfebccee4d51162e97
-C Most\stest\scases\snow\spassing.
-D 2020-07-22T13:56:14.497
+C All\sTCL\stests\snow\spassing.
+D 2020-07-22T17:12:59.996
 F src/analyze.c 5cffff3d355858cd22bfc6e20ac7203510d2e1cc935086eb06f4abb2f579f628
-F src/btree.c 7c8eec7364491b07481cdce83c42a00adbfd8a1c4c3af85351cd37f666946711
-F src/btree.h 7d4384cfa8cb7b7c389ae7572e8c1815eaf6a628bc8799b9cb6d9073bfbd7a47
+F src/btree.c a4720f51945a86379ecd962a715d6fe9de08651a67d1e6f7b4884612da83ceb5
+F src/btree.h 7af72bbb4863c331c8f6753277ab40ee67d2a2125a63256d5c25489722ec162b
 F src/btreeInt.h 83166f6daeb91062b6ae9ee6247b3ad07e40eba58f3c05ba9e8dedad4ab1ea38
 F src/build.c f2b73fbb2197fb6e6a35ff2e1750085f023dc50542185f1a2dfccd632223eb14
 F src/pager.c a5f65ff2cd73b8d381cc7b338cac382ca6978d578fa0b84fdaa11d3cdc3c3e18
@@ -16,8 +16,9 @@ F src/vdbe.h 83603854bfa5851af601fc0947671eb260f4363e62e960e8a994fb9bbcd2aaa1
 F src/vdbeInt.h 762abffb7709f19c2cb74af1bba73a900f762e64f80d69c31c9ae89ed1066b60
 F src/vdbeaux.c 1cbbbffdb874c6f3e7aab40f3deb48abac4a71df1043cd95bb0d652d4e053871
 F src/wherecode.c 8064fe5c042824853a9b1fda670054a51a49033a6c79059988c97751ccf8088e
+F test/corrupt3.test 2520432b1fbf99994841e69804a3c59fb828183f4d09b85a1631bc7adca17e31
 F tool/showdb.c 49e810f5c414c792b5bf38cd5557ca9639713ebfef32aaff32faf7cb7ccce513
-P 9ce1710aad43cebe5ad50859c7685fb83e40cdd4a60913bd2b7e659bc59942fd
-R 131dcd31c10e2d0c86f59a78d43a769c
+P 92e2ab38930c76811dbf5abfe6b9ea9e12562a4bb4bb06cdb0cf49ac30da0bc3
+R 9a8fcc1aa7a1542100ce070d51449c82
 U drh
-Z 57a23f03358379397973499ea0b801f6
+Z 823bbfd3b3d1b49671a3ec5ee70353b6
index 42b513ba4e0541ce66115d8138a39151ea5906ad..d61058e2b556f290d162156dbb47697b5bd8ca43 100644 (file)
@@ -1 +1 @@
-92e2ab38930c76811dbf5abfe6b9ea9e12562a4bb4bb06cdb0cf49ac30da0bc3
\ No newline at end of file
+4c5f3c6cacf84a36d0347790d98d82d1f584cd1537a13a2736348405c4d20367
\ No newline at end of file
index f0c623b46f5a9e5679c59ba3ab3f8e2fcd1409cc..77eb7a788794c060ac2d1adeea5640283b1fefed 100644 (file)
@@ -2139,12 +2139,11 @@ static MemPage *btreePageLookup(BtShared *pBt, Pgno pgno){
 ** error, return ((unsigned int)-1).
 */
 static Pgno btreePagecount(BtShared *pBt){
-  assert( (pBt->nPage & 0x80000000)==0 || CORRUPT_DB );
   return pBt->nPage;
 }
-u32 sqlite3BtreeLastPage(Btree *p){
+Pgno sqlite3BtreeLastPage(Btree *p){
   assert( sqlite3BtreeHoldsMutex(p) );
-  return btreePagecount(p->pBt) & 0x7fffffff;
+  return btreePagecount(p->pBt);
 }
 
 /*
@@ -4836,7 +4835,7 @@ static int accessPayload(
     Pgno nextPage;
 
     nextPage = get4byte(&aPayload[pCur->info.nLocal]);
-
     /* If the BtCursor.aOverflow[] has not been allocated, allocate it now.
     **
     ** The aOverflow[] array is sized at one entry for each overflow page
@@ -4875,6 +4874,7 @@ static int accessPayload(
     assert( rc==SQLITE_OK && amt>0 );
     while( nextPage ){
       /* If required, populate the overflow page-list cache. */
+      if( nextPage > pBt->nPage ) return SQLITE_CORRUPT_BKPT;
       assert( pCur->aOverflow[iIdx]==0
               || pCur->aOverflow[iIdx]==nextPage
               || CORRUPT_DB );
index c774ae32ab4c37b4a9647b96cf2e7dd3605730d2..5dd5287d18c6c5987e20fcd3d0dae4a79c7e63f7 100644 (file)
@@ -72,7 +72,7 @@ int sqlite3BtreeSetPagerFlags(Btree*,unsigned);
 int sqlite3BtreeSetPageSize(Btree *p, int nPagesize, int nReserve, int eFix);
 int sqlite3BtreeGetPageSize(Btree*);
 Pgno sqlite3BtreeMaxPageCount(Btree*,Pgno);
-u32 sqlite3BtreeLastPage(Btree*);
+Pgno sqlite3BtreeLastPage(Btree*);
 int sqlite3BtreeSecureDelete(Btree*,int);
 int sqlite3BtreeGetRequestedReserve(Btree*);
 int sqlite3BtreeGetReserveNoMutex(Btree *p);
index 3c911dadb6b34c391f1ca76143957691c33fd274..7a2e174ead2992bf4b3e37e19e91cfd2f7900c28 100644 (file)
@@ -94,7 +94,7 @@ do_test corrupt3-1.9 {
   catchsql {
     SELECT substr(x,1,10) FROM t1
   }
-} [list 0 0123456789]
+} [list 1 {database disk image is malformed}]
 do_test corrupt3-1.10 {
   catchsql {
     PRAGMA integrity_check