ITS#8412 fix NEXT_DUP after cursor_del
authorHoward Chu <hyc@openldap.org>
Tue, 26 Apr 2016 11:52:21 +0000 (12:52 +0100)
committerHoward Chu <hyc@openldap.org>
Tue, 26 Apr 2016 11:52:21 +0000 (12:52 +0100)
libraries/liblmdb/mdb.c

index e62ca62..72294a7 100644 (file)
@@ -6417,7 +6417,8 @@ mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op)
        MDB_node        *leaf;
        int rc;
 
-       if (mc->mc_flags & C_EOF) {
+       if ((mc->mc_flags & C_EOF) ||
+               ((mc->mc_flags & C_DEL) && op == MDB_NEXT_DUP)) {
                return MDB_NOTFOUND;
        }
        if (!(mc->mc_flags & C_INITIALIZED))