mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Fix a couple of btree asserts that would fail when encountering 32-bit rollover in cell payload size fields (cell payloads this large always indicate corruption).
FossilOrigin-Name: 8fa0937a2f3476dd280259e252d6f422c33d38ee
This commit is contained in:
@@ -5750,7 +5750,9 @@ static int clearCell(
|
||||
assert( pBt->usableSize > 4 );
|
||||
ovflPageSize = pBt->usableSize - 4;
|
||||
nOvfl = (info.nPayload - info.nLocal + ovflPageSize - 1)/ovflPageSize;
|
||||
assert( ovflPgno==0 || nOvfl>0 );
|
||||
assert( nOvfl>0 ||
|
||||
(CORRUPT_DB && (info.nPayload + ovflPageSize)<ovflPageSize)
|
||||
);
|
||||
while( nOvfl-- ){
|
||||
Pgno iNext = 0;
|
||||
MemPage *pOvfl = 0;
|
||||
@@ -6005,7 +6007,7 @@ static void dropCell(MemPage *pPage, int idx, int sz, int *pRC){
|
||||
if( *pRC ) return;
|
||||
|
||||
assert( idx>=0 && idx<pPage->nCell );
|
||||
assert( sz==cellSize(pPage, idx) );
|
||||
assert( CORRUPT_DB || sz==cellSize(pPage, idx) );
|
||||
assert( sqlite3PagerIswriteable(pPage->pDbPage) );
|
||||
assert( sqlite3_mutex_held(pPage->pBt->mutex) );
|
||||
data = pPage->aData;
|
||||
|
Reference in New Issue
Block a user