diff options
author | dan <dan@noemail.net> | 2019-04-22 11:47:40 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2019-04-22 11:47:40 +0000 |
commit | a9a5465eb44d0d8f1c3c9d288b7f23f628ddb50b (patch) | |
tree | 795877faeca410110ac85ca227aa6452eae943d9 /src/btree.c | |
parent | 1d2d71a02cac0e4a13d54ae1bd3b3351abbf9828 (diff) | |
download | sqlite-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.c | 7 |
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); } |