mdb_cursor_prev,mdb_cursor_next: Fix return value.
authorHallvard Furuseth <hallvard@openldap.org>
Tue, 19 Feb 2013 21:02:15 +0000 (22:02 +0100)
committerHallvard Furuseth <hallvard@openldap.org>
Tue, 19 Feb 2013 21:02:15 +0000 (22:02 +0100)
Return mdb_node_read()'s return value if it fails, not 1.
(Can happen if mdb_page_get() fails and NDEBUG is #defined.)

libraries/liblmdb/mdb.c

index 6018968..c9dc1a5 100644 (file)
@@ -4262,7 +4262,7 @@ mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op)
                mdb_xcursor_init1(mc, leaf);
        }
        if (data) {
-               if ((rc = mdb_node_read(mc->mc_txn, leaf, data) != MDB_SUCCESS))
+               if ((rc = mdb_node_read(mc->mc_txn, leaf, data)) != MDB_SUCCESS)
                        return rc;
 
                if (F_ISSET(leaf->mn_flags, F_DUPDATA)) {
@@ -4335,7 +4335,7 @@ mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op)
                mdb_xcursor_init1(mc, leaf);
        }
        if (data) {
-               if ((rc = mdb_node_read(mc->mc_txn, leaf, data) != MDB_SUCCESS))
+               if ((rc = mdb_node_read(mc->mc_txn, leaf, data)) != MDB_SUCCESS)
                        return rc;
 
                if (F_ISSET(leaf->mn_flags, F_DUPDATA)) {