From c7b3cc4df6dfe8f0772fb509bdc74777667caa43 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 6 Mar 2023 16:47:44 +0000 Subject: [PATCH] ITS#8447 fix cursor_put(MDB_CURRENT) on DUPSORT DB with different-sized data --- libraries/liblmdb/mdb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index e76f09b71a..6e4c4d04bf 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -7974,11 +7974,14 @@ current: else if (!(mc->mc_flags & C_SUB)) memcpy(olddata.mv_data, data->mv_data, data->mv_size); else { + if (key->mv_size != NODEKSZ(leaf)) + goto new_ksize; memcpy(NODEKEY(leaf), key->mv_data, key->mv_size); goto fix_parent; } return MDB_SUCCESS; } +new_ksize: mdb_node_del(mc, 0); } -- 2.47.2