X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fadd.c;h=078bd73075540fe4df27eb98ea5767937cc38c69;hb=3aa62fea17b298f0968c3aba762fca8da65670c7;hp=f7bcc117fd1773e17c031310933b9788cdfe3a37;hpb=001594d5adf13599eb6cad25bdb8a9a40297eca6;p=openldap diff --git a/servers/slapd/add.c b/servers/slapd/add.c index f7bcc117fd..078bd73075 100644 --- a/servers/slapd/add.c +++ b/servers/slapd/add.c @@ -501,7 +501,7 @@ slap_mods2entry( } } else { - int rc = LDAP_SUCCESS; + int rc; int match; for ( i = 1; mods->sml_values[i].bv_val != NULL; i++ ) { @@ -519,18 +519,19 @@ slap_mods2entry( ? &mods->sml_nvalues[j] : &mods->sml_values[j], text ); + if ( rc == LDAP_SUCCESS && match == 0 ) { /* value exists already */ snprintf( textbuf, textlen, "%s: value #%d provided more than once", mods->sml_desc->ad_cname.bv_val, j ); return LDAP_TYPE_OR_VALUE_EXISTS; + + } else if ( rc != LDAP_SUCCESS ) { + return rc; } } } - if ( rc != LDAP_SUCCESS ) { - return rc; - } } }