From 4c8f57615c5ca7b014c038e59c1045182e74f5ad Mon Sep 17 00:00:00 2001
From: Hallvard Furuseth <hallvard@openldap.org>
Date: Sat, 21 Dec 2013 12:31:57 +0100
Subject: [PATCH] Fix commit "Raise safe max MDB_MAXKEYSIZE."

I.e. d69d2ce2307e9d0e2167843935c386b05a869c31, it left out some changes.
---
 libraries/liblmdb/mdb.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c
index 6326dbcd7b..c2c374bbc5 100644
--- a/libraries/liblmdb/mdb.c
+++ b/libraries/liblmdb/mdb.c
@@ -4507,8 +4507,6 @@ mdb_node_search(MDB_cursor *mc, MDB_val *key, int *exactp)
 	}
 #endif
 
-	assert(nkeys > 0);
-
 	low = IS_LEAF(mp) ? 0 : 1;
 	high = nkeys - 1;
 	cmp = mc->mc_dbx->md_cmp;
@@ -4571,7 +4569,7 @@ mdb_node_search(MDB_cursor *mc, MDB_val *key, int *exactp)
 			node = NODEPTR(mp, i);
 	}
 	if (exactp)
-		*exactp = (rc == 0);
+		*exactp = (rc == 0 && nkeys > 0);
 	/* store the key index */
 	mc->mc_ki[mc->mc_top] = i;
 	if (i >= nkeys)
@@ -5968,7 +5966,8 @@ prep_subDB:
 			rdata = &xdata;
 			flags |= F_DUPDATA;
 			do_sub = 1;
-			mdb_node_del(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top], 0);
+			if (!insert)
+				mdb_node_del(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top], 0);
 			goto new_sub;
 		}
 current:
-- 
GitLab