From: Howard Chu Date: Tue, 27 Mar 2012 08:52:31 +0000 (-0700) Subject: Cleanup prev commit X-Git-Tag: OPENLDAP_REL_ENG_2_4_32~39 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5c9dd91e34a35f1af95fcde7f40db5a3a5c8a7f1;p=openldap Cleanup prev commit --- diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index d289a3bff1..9e5a0f3ae2 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -4634,39 +4634,31 @@ check_name_index( CfEntryInfo *parent, ConfigType ce_type, Entry *e, } } - /* count related kids, for entries of type Cft_Misc, consider only - * same attribute siblings */ - if ( ce_type == Cft_Misc ) - { - AttributeDescription *ad = NULL; - + /* count related kids. + * For entries of type Cft_Misc, only count siblings with same RDN type + */ + if ( ce_type == Cft_Misc ) { + rdn.bv_val = e->e_nname.bv_val; ptr1 = strchr( rdn.bv_val, '=' ); assert( ptr1 != NULL ); rdn.bv_len = ptr1 - rdn.bv_val; - slap_bv2ad( &rdn, &ad, &ptr2 ); - assert( ad != NULL ); for (nsibs=0, ce=parent->ce_kids; ce; ce=ce->ce_sibs) { - AttributeDescription *ad2 = NULL; + struct berval rdn2; if ( ce->ce_type != ce_type ) continue; - dnRdn( &ce->ce_entry->e_name, &rdn ); + dnRdn( &ce->ce_entry->e_nname, &rdn2 ); - ptr1 = strchr( rdn.bv_val, '=' ); + ptr1 = strchr( rdn2.bv_val, '=' ); assert( ptr1 != NULL ); - rdn.bv_len = ptr1 - rdn.bv_val; - slap_bv2ad( &rdn, &ad2, &ptr2 ); - assert( ad2 != NULL ); - - if ( ad == ad2 ) + rdn2.bv_len = ptr1 - rdn2.bv_val; + if ( bvmatch( &rdn, &rdn2 )) nsibs++; } - } - else - { + } else { for (nsibs=0, ce=parent->ce_kids; ce; ce=ce->ce_sibs) { if ( ce->ce_type == ce_type ) nsibs++; }