ITS#9564 lmdb: fix race condition freeing spilled pages at end of transaction

This commit is contained in:
Howard Chu 2025-10-15 18:12:26 +01:00
parent 7259296081
commit b807ef1345

View file

@ -3078,6 +3078,7 @@ mdb_txn_end(MDB_txn *txn, unsigned mode)
txn->mt_numdbs = 0;
txn->mt_flags = MDB_TXN_FINISHED;
mdb_midl_free(txn->mt_spill_pgs);
if (!txn->mt_parent) {
mdb_midl_shrink(&txn->mt_free_pgs);
@ -3099,7 +3100,6 @@ mdb_txn_end(MDB_txn *txn, unsigned mode)
mdb_midl_free(txn->mt_free_pgs);
free(txn->mt_u.dirty_list);
}
mdb_midl_free(txn->mt_spill_pgs);
mdb_midl_free(pghead);
}