| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| From: Darwin Huang <huangdarwin@chromium.org> |
| Date: Wed, 17 Jul 2019 15:24:25 -0700 |
| Subject: [PATCH 4/6] Fix incorrect assert |
| |
| Backports https://www.sqlite.org/src/info/59c9e73f86b89ee1 |
| |
| Bug: 983783 |
| --- |
| third_party/sqlite/patched/src/btree.c | 7 +------ |
| 1 file changed, 1 insertion(+), 6 deletions(-) |
| |
| diff --git a/third_party/sqlite/patched/src/btree.c b/third_party/sqlite/patched/src/btree.c |
| index c0ae8f00922e..23cb6bb3b083 100644 |
| --- a/third_party/sqlite/patched/src/btree.c |
| +++ b/third_party/sqlite/patched/src/btree.c |
| @@ -6664,12 +6664,7 @@ static void insertCell( |
| assert( pPage->nOverflow<=ArraySize(pPage->apOvfl) ); |
| assert( ArraySize(pPage->apOvfl)==ArraySize(pPage->aiOvfl) ); |
| assert( sqlite3_mutex_held(pPage->pBt->mutex) ); |
| - /* The cell should normally be sized correctly. However, when moving a |
| - ** malformed cell from a leaf page to an interior page, if the cell size |
| - ** wanted to be less than 4 but got rounded up to 4 on the leaf, then size |
| - ** might be less than 8 (leaf-size + pointer) on the interior node. Hence |
| - ** the term after the || in the following assert(). */ |
| - assert( sz==pPage->xCellSize(pPage, pCell) || (sz==8 && iChild>0) ); |
| + assert( sz==pPage->xCellSize(pPage, pCell) || CORRUPT_DB ); |
| assert( pPage->nFree>=0 ); |
| if( pPage->nOverflow || sz+2>pPage->nFree ){ |
| if( pTemp ){ |
| -- |
| 2.23.0.351.gc4317032e6-goog |
| |