mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-27 01:59:38 -05:00
Fix: avoid direct reference to meta pages
Relevant info should be copied during txn_begin only.
This commit is contained in:
parent
df7ddb6bf4
commit
433105f09b
1 changed files with 2 additions and 2 deletions
|
|
@ -1608,9 +1608,9 @@ mdb_txn_renew0(MDB_txn *txn)
|
|||
txn->mt_u.dirty_list[0].mid = 0;
|
||||
txn->mt_free_pgs = env->me_free_pgs;
|
||||
txn->mt_free_pgs[0] = 0;
|
||||
txn->mt_next_pgno = env->me_metas[txn->mt_toggle]->mm_last_pg+1;
|
||||
env->me_txn = txn;
|
||||
}
|
||||
txn->mt_next_pgno = env->me_metas[txn->mt_toggle]->mm_last_pg+1;
|
||||
|
||||
/* Copy the DB arrays */
|
||||
LAZY_RWLOCK_RDLOCK(&env->me_dblock);
|
||||
|
|
@ -3380,7 +3380,7 @@ mdb_page_get(MDB_txn *txn, pgno_t pgno, MDB_page **ret)
|
|||
}
|
||||
}
|
||||
if (!p) {
|
||||
if (pgno <= txn->mt_env->me_metas[txn->mt_toggle]->mm_last_pg)
|
||||
if (pgno < txn->mt_next_pgno)
|
||||
p = (MDB_page *)(txn->mt_env->me_map + txn->mt_env->me_psize * pgno);
|
||||
}
|
||||
*ret = p;
|
||||
|
|
|
|||
Loading…
Reference in a new issue