From 6d33c137f6d0b4d3d63f5bf079abbb439e9d968f Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Fri, 7 Sep 2018 01:47:10 +0300 Subject: [PATCH] mdbx: fix mdbx_cursor_put(). Change-Id: I280c6f275372952ce3411e564928ad6c3387b00c --- src/mdbx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mdbx.c b/src/mdbx.c index c7fde367..6bef0d3b 100644 --- a/src/mdbx.c +++ b/src/mdbx.c @@ -8333,7 +8333,11 @@ new_sub: rc = mdbx_page_split(mc, key, rdata, P_INVALID, nflags); } else { /* There is room already in this leaf page. */ - rc = mdbx_node_add_leaf(mc, mc->mc_ki[mc->mc_top], key, rdata, nflags); + if (IS_LEAF2(mc->mc_pg[mc->mc_top])) { + mdbx_cassert(mc, nflags == 0 && rdata->iov_len == 0); + rc = mdbx_node_add_leaf2(mc, mc->mc_ki[mc->mc_top], key); + } else + rc = mdbx_node_add_leaf(mc, mc->mc_ki[mc->mc_top], key, rdata, nflags); if (likely(rc == 0)) { /* Adjust other cursors pointing to mp */ MDBX_cursor *m2, *m3;