diff --git a/CHANGES b/CHANGES index 3e063c6f0b1b48713c68bd3d2ec50763627a3c73..15064e016b97eabab859060e571c73d6de4d439e 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ OpenLDAP 2.4.15 Release (2009/02/19) Fixed slapd bconfig conversion again (ITS#5346) Fixed slapd corrupt contextCSN (ITS#5947) Fixed slapd syncrepl order to match on add/delete (ITS#5954) + Fixed slapd adding rdn with other values (ITS#5965) Fixed slapd-bdb/hdb behavior with unallocatable shm (ITS#5956) Fixed slapd-ldap/meta with entries with invalid attrs (ITS#5959) Fixed slapd-relay control initialization (ITS#5724) diff --git a/servers/slapd/schema_check.c b/servers/slapd/schema_check.c index b466613c47d30e9a93e5a5f46c8db210909f458a..e95b3625cd132e1c265cdade85405cf292fd96ac 100644 --- a/servers/slapd/schema_check.c +++ b/servers/slapd/schema_check.c @@ -881,7 +881,7 @@ entry_naming_check( SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH, &ava->la_value, NULL, NULL ); - if( rc != 0 ) { + if ( rc != 0 ) { switch( rc ) { case LDAP_INAPPROPRIATE_MATCHING: snprintf( textbuf, textlen, @@ -895,8 +895,16 @@ entry_naming_check( break; case LDAP_NO_SUCH_ATTRIBUTE: if ( add_naming ) { - add = 1; - rc = LDAP_SUCCESS; + if ( is_at_single_value( desc->ad_type ) ) { + snprintf( textbuf, textlen, + "value of single-valued naming attribute '%s' conflicts with value present in entry", + ava->la_attr.bv_val ); + + } else { + add = 1; + rc = LDAP_SUCCESS; + } + } else { snprintf( textbuf, textlen, "value of naming attribute '%s' is not present in entry",