Workaround VL32 cursor refcounting miscount
Don't try to deref cursor page if txn's pagelist is empty
This commit is contained in:
parent
15eb2bcf6f
commit
edfd7f6e07
1 changed files with 9 additions and 7 deletions
2
external/db_drivers/liblmdb/mdb.c
vendored
2
external/db_drivers/liblmdb/mdb.c
vendored
|
@ -1953,6 +1953,7 @@ static void
|
|||
mdb_cursor_unref(MDB_cursor *mc)
|
||||
{
|
||||
int i;
|
||||
if (mc->mc_txn->mt_rpages[0].mid) {
|
||||
if (!mc->mc_snum || !mc->mc_pg[0] || IS_SUBP(mc->mc_pg[0]))
|
||||
return;
|
||||
for (i=0; i<mc->mc_snum; i++)
|
||||
|
@ -1961,6 +1962,7 @@ mdb_cursor_unref(MDB_cursor *mc)
|
|||
mdb_page_unref(mc->mc_txn, mc->mc_ovpg);
|
||||
mc->mc_ovpg = 0;
|
||||
}
|
||||
}
|
||||
mc->mc_snum = mc->mc_top = 0;
|
||||
mc->mc_pg[0] = NULL;
|
||||
mc->mc_flags &= ~C_INITIALIZED;
|
||||
|
|
Loading…
Reference in a new issue