diff options
author | drh <> | 2024-12-19 19:02:09 +0000 |
---|---|---|
committer | drh <> | 2024-12-19 19:02:09 +0000 |
commit | be2a40d48967fbcb68250b51d556f9a2fb4ad649 (patch) | |
tree | 82504d9ad83247147cf468ffec63279d9d7c50e0 /src | |
parent | f2d422c528475e8f39a5b71e108c37b4083d5385 (diff) | |
download | sqlite-be2a40d48967fbcb68250b51d556f9a2fb4ad649.tar.gz sqlite-be2a40d48967fbcb68250b51d556f9a2fb4ad649.zip |
The BTree mutex must be held when calling sqlite3BtreeLastPage(). This
check-in fixes a bug introduced by [cf8b99e17872c054].
FossilOrigin-Name: e6c30ee52c5cdc193804cec63374d558b45e4d67fc6bde58771ca78485ca0acf
Diffstat (limited to 'src')
-rw-r--r-- | src/dbpage.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/dbpage.c b/src/dbpage.c index 3bb18b677..74f345570 100644 --- a/src/dbpage.c +++ b/src/dbpage.c @@ -428,9 +428,11 @@ static int dbpageSync(sqlite3_vtab *pVtab){ if( pTab->pgnoTrunc>0 ){ Btree *pBt = pTab->db->aDb[pTab->iDbTrunc].pBt; Pager *pPager = sqlite3BtreePager(pBt); + sqlite3BtreeEnter(pBt); if( pTab->pgnoTrunc<sqlite3BtreeLastPage(pBt) ){ sqlite3PagerTruncateImage(pPager, pTab->pgnoTrunc); } + sqlite3BtreeLeave(pBt); } pTab->pgnoTrunc = 0; return SQLITE_OK; |