X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibmdb%2Fmdb.c;h=6baf0556d5be028a9cee30cb1f55d5e26f037f03;hb=11308a190d31e2c9aee3c8ec8e87caf122afa58e;hp=135c10359f41162e1b9a319adfd26cadb37d49b7;hpb=697e00a8e2133794acac51d9e52f56459983d404;p=openldap diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c index 135c10359f..6baf0556d5 100644 --- a/libraries/libmdb/mdb.c +++ b/libraries/libmdb/mdb.c @@ -2008,7 +2008,8 @@ mdb_cursor_set(MDB_cursor *cursor, MDB_val *key, MDB_val *data, cursor->mc_eof = 0; if (data) { - if ((rc = mdb_read_data(cursor->mc_txn, leaf, data)) != MDB_SUCCESS) + MDB_val d2; + if ((rc = mdb_read_data(cursor->mc_txn, leaf, &d2)) != MDB_SUCCESS) return rc; if (cursor->mc_txn->mt_dbs[cursor->mc_dbi].md_flags & MDB_DUPSORT) { @@ -2029,7 +2030,10 @@ mdb_cursor_set(MDB_cursor *cursor, MDB_val *key, MDB_val *data, if (rc != MDB_SUCCESS) return rc; } + } else { + *data = d2; } + } rc = mdb_set_key(leaf, key);