aboutsummaryrefslogtreecommitdiff
path: root/src/btree.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-04-22 11:47:40 +0000
committerdan <dan@noemail.net>2019-04-22 11:47:40 +0000
commita9a5465eb44d0d8f1c3c9d288b7f23f628ddb50b (patch)
tree795877faeca410110ac85ca227aa6452eae943d9 /src/btree.c
parent1d2d71a02cac0e4a13d54ae1bd3b3351abbf9828 (diff)
downloadsqlite-a9a5465eb44d0d8f1c3c9d288b7f23f628ddb50b.tar.gz
sqlite-a9a5465eb44d0d8f1c3c9d288b7f23f628ddb50b.zip
Fix an assert() that may be false for corrupt databases.
FossilOrigin-Name: b2ce5ed175cb5029ac07392ae371c86eeec23c74624aad007dee51cf359f3eeb
Diffstat (limited to 'src/btree.c')
-rw-r--r--src/btree.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/btree.c b/src/btree.c
index b31f74e79..e282ff4ed 100644
--- a/src/btree.c
+++ b/src/btree.c
@@ -4284,10 +4284,9 @@ int sqlite3BtreeSavepoint(Btree *p, int op, int iSavepoint){
rc = newDatabase(pBt);
pBt->nPage = get4byte(28 + pBt->pPage1->aData);
- /* The database size was written into the offset 28 of the header
- ** when the transaction started, so we know that the value at offset
- ** 28 is nonzero. */
- assert( pBt->nPage>0 );
+ /* pBt->nPage might be zero if the database was corrupt when
+ ** the transaction was started. Otherwise, it must be at least 1. */
+ assert( CORRUPT_DB || pBt->nPage>0 );
}
sqlite3BtreeLeave(p);
}