aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2024-12-19 19:02:09 +0000
committerdrh <>2024-12-19 19:02:09 +0000
commitbe2a40d48967fbcb68250b51d556f9a2fb4ad649 (patch)
tree82504d9ad83247147cf468ffec63279d9d7c50e0 /src
parentf2d422c528475e8f39a5b71e108c37b4083d5385 (diff)
downloadsqlite-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.c2
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;