diff options
author | drh <drh@noemail.net> | 2007-09-06 23:39:36 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2007-09-06 23:39:36 +0000 |
commit | 7dc385ee8524e992b176e8aa535adf7bcdbd31e3 (patch) | |
tree | 9abdde6152865684ab9fe6ad185d33ca7bf4ef1d /src | |
parent | 334b299462620840b11599053493f3176c2ac922 (diff) | |
download | sqlite-7dc385ee8524e992b176e8aa535adf7bcdbd31e3.tar.gz sqlite-7dc385ee8524e992b176e8aa535adf7bcdbd31e3.zip |
Throw an error on an attempt to open a database where the page
size is larger than SQLITE_MAX_PAGE_SIZE. Ticket #2628. (CVS 4411)
FossilOrigin-Name: 4881f7cb37e35dcf5da358464ac858a508128e47
Diffstat (limited to 'src')
-rw-r--r-- | src/btree.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/btree.c b/src/btree.c index 5f672082c..c33589ee6 100644 --- a/src/btree.c +++ b/src/btree.c @@ -9,7 +9,7 @@ ** May you share freely, never taking more than you give. ** ************************************************************************* -** $Id: btree.c,v 1.423 2007/09/06 22:19:15 drh Exp $ +** $Id: btree.c,v 1.424 2007/09/06 23:39:37 drh Exp $ ** ** This file implements a external (disk-based) database using BTrees. ** See the header comment on "btreeInt.h" for additional information. @@ -1647,7 +1647,9 @@ static int lockBtree(BtShared *pBt){ goto page1_init_failed; } pageSize = get2byte(&page1[16]); - if( ((pageSize-1)&pageSize)!=0 || pageSize<512 ){ + if( ((pageSize-1)&pageSize)!=0 || pageSize<512 || + (SQLITE_MAX_PAGE_SIZE<32768 && pageSize>SQLITE_MAX_PAGE_SIZE) + ){ goto page1_init_failed; } assert( (pageSize & 7)==0 ); |