https://bugs.openldap.org/show_bug.cgi?id=9430
--- Comment #1 from Howard Chu <[email protected]> --- (In reply to kenta from comment #0) > Running on NixOS (x86_64-linux). > > The following sequence of methods was called with an MDB_env and MDB_txn > created with default flags, with the MDB_txn open on MAIN_DBI. > > The following code is pseudocode - should the code not be clear enough, > happy to provide the original test case which was written in Zig > (https://ziglang.org). > > > > // Put KV pair ('hello', 'test'). > > var k: MDB_val = .{ .mv_size = "hello".len, .mv_data = &"hello" }; > var v: MDB_val = .{ .mv_size = "test".len, .mv_data = &"test" }; > mdb_put(txn, MAIN_DBI, &k, &v, 0); > > // Attempt to put KV pair ('hello', 'world!') with MDB_RESERVE | > MDB_NOOVERWRITE, and assert that it fails. > > var k2: MDB_val = .{ .mv_size = "hello".len, .mv_data = &"hello" }; > var v2: MDB_val = .{ .mv_size = "world!".len, .mv_data = null }; > assert(mdb_put(txn, MAIN_DBI, &k2, &v2, MDB_RESERVE | MDB_NOOVERWRITE) > == MDB_KEYEXIST); > > // Assertion fails. > assert(v2 == v); > > > > After these steps, it is expected that v2's 'mv_data' points to 'test' with > a 'mv_size' of 4 (the previously, successfully-written KV pair). > > What actually happened was that v2's 'mv_size' was correctly set to 4, > though 'mv_data' points to garbage memory. Unable to reproduce, code works and returns the expected value for me. -- You are receiving this mail because: You are on the CC list for the issue.
