mirror of
https://codeberg.org/anoncontributorxmr/monero.git
synced 2024-11-30 03:03:17 +00:00
Merge pull request #1656
edfd7f6e
Workaround VL32 cursor refcounting miscount (Howard Chu)
This commit is contained in:
commit
da9174c8ee
1 changed files with 9 additions and 7 deletions
16
external/db_drivers/liblmdb/mdb.c
vendored
16
external/db_drivers/liblmdb/mdb.c
vendored
|
@ -1953,13 +1953,15 @@ static void
|
||||||
mdb_cursor_unref(MDB_cursor *mc)
|
mdb_cursor_unref(MDB_cursor *mc)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
if (!mc->mc_snum || !mc->mc_pg[0] || IS_SUBP(mc->mc_pg[0]))
|
if (mc->mc_txn->mt_rpages[0].mid) {
|
||||||
return;
|
if (!mc->mc_snum || !mc->mc_pg[0] || IS_SUBP(mc->mc_pg[0]))
|
||||||
for (i=0; i<mc->mc_snum; i++)
|
return;
|
||||||
mdb_page_unref(mc->mc_txn, mc->mc_pg[i]);
|
for (i=0; i<mc->mc_snum; i++)
|
||||||
if (mc->mc_ovpg) {
|
mdb_page_unref(mc->mc_txn, mc->mc_pg[i]);
|
||||||
mdb_page_unref(mc->mc_txn, mc->mc_ovpg);
|
if (mc->mc_ovpg) {
|
||||||
mc->mc_ovpg = 0;
|
mdb_page_unref(mc->mc_txn, mc->mc_ovpg);
|
||||||
|
mc->mc_ovpg = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mc->mc_snum = mc->mc_top = 0;
|
mc->mc_snum = mc->mc_top = 0;
|
||||||
mc->mc_pg[0] = NULL;
|
mc->mc_pg[0] = NULL;
|
||||||
|
|
Loading…
Reference in a new issue