From e764d2c76d0c2b3584a11c9b2b74f0172c4f6209 Mon Sep 17 00:00:00 2001 From: Kris Zyp Date: Tue, 21 Jan 2025 10:01:19 -0700 Subject: [PATCH] Try to recover from closing a freed cursor --- dependencies/lmdb/libraries/liblmdb/mdb.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dependencies/lmdb/libraries/liblmdb/mdb.c b/dependencies/lmdb/libraries/liblmdb/mdb.c index e33158092..113c6ce98 100644 --- a/dependencies/lmdb/libraries/liblmdb/mdb.c +++ b/dependencies/lmdb/libraries/liblmdb/mdb.c @@ -10357,6 +10357,11 @@ void mdb_cursor_close(MDB_cursor *mc) { if (mc) { + if (!mc->mc_txn || !mc->mc_txn->mt_env) { + fprintf(stderr, "cursor_close: mc->mc_txn or mc->mc_txn->mt_env is NULL, ensure that cursors are closed before the transaction is closed\n"); + free(mc); + return; + } MDB_CURSOR_UNREF(mc, 0); } if (mc && !mc->mc_backup) {