mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-20 22:59:34 -05:00
ITS#8447 fix cursor_put(MDB_CURRENT) on DUPSORT DB with different-sized data
This commit is contained in:
parent
137fef056d
commit
76bad923f7
1 changed files with 3 additions and 0 deletions
|
|
@ -6963,11 +6963,14 @@ current:
|
||||||
else if (!(mc->mc_flags & C_SUB))
|
else if (!(mc->mc_flags & C_SUB))
|
||||||
memcpy(olddata.mv_data, data->mv_data, data->mv_size);
|
memcpy(olddata.mv_data, data->mv_data, data->mv_size);
|
||||||
else {
|
else {
|
||||||
|
if (key->mv_size != NODEKSZ(leaf))
|
||||||
|
goto new_ksize;
|
||||||
memcpy(NODEKEY(leaf), key->mv_data, key->mv_size);
|
memcpy(NODEKEY(leaf), key->mv_data, key->mv_size);
|
||||||
goto fix_parent;
|
goto fix_parent;
|
||||||
}
|
}
|
||||||
return MDB_SUCCESS;
|
return MDB_SUCCESS;
|
||||||
}
|
}
|
||||||
|
new_ksize:
|
||||||
mdb_node_del(mc, 0);
|
mdb_node_del(mc, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue