mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
build entry's pretty DN from parent's (ITS#5326)
This commit is contained in:
parent
ee4e903b90
commit
7cd382d931
@ -284,6 +284,26 @@ retry: /* transaction retry */
|
||||
|
||||
/* free parent and reader lock */
|
||||
if ( p != (Entry *)&slap_entry_root ) {
|
||||
if ( p->e_nname.bv_len ) {
|
||||
struct berval ppdn;
|
||||
|
||||
/* ITS#5326: use parent's DN if differs from provided one */
|
||||
dnParent( &op->ora_e->e_name, &ppdn );
|
||||
if ( !dn_match( &p->e_name, &ppdn ) ) {
|
||||
struct berval rdn;
|
||||
struct berval newdn;
|
||||
|
||||
dnRdn( &op->ora_e->e_name, &rdn );
|
||||
|
||||
build_new_dn( &newdn, &p->e_name, &rdn, NULL );
|
||||
ber_memfree( op->ora_e->e_name.bv_val );
|
||||
op->ora_e->e_name = newdn;
|
||||
|
||||
/* FIXME: should check whether
|
||||
* dnNormalize(newdn) == e->e_nname ... */
|
||||
}
|
||||
}
|
||||
|
||||
bdb_unlocked_cache_return_entry_r( bdb, p );
|
||||
}
|
||||
p = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user