]> git.sur5r.net Git - openldap/commitdiff
Another bug.
authorKurt Zeilenga <kurt@openldap.org>
Thu, 8 Apr 2004 21:45:49 +0000 (21:45 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 8 Apr 2004 21:45:49 +0000 (21:45 +0000)
servers/slapd/mods.c

index fc540aa7f80c15a056adc0213861d0da72425019..f4c84b4a2ef18f8f18ea6f08d62926f850fba80e 100644 (file)
@@ -74,7 +74,7 @@ modify_add_values(
                 * server (whether from LDAP or from the underlying
                 * database).
                 */
-               for ( i=0; mod->sm_values[i].bv_val != NULL; i++ ) {
+               for ( i=0; mod->sm_values[i].bv_val; i++ ) {
                        for ( j=0; a->a_vals[j].bv_val; j++ ) {
                                int match;
                                if( mod->sm_nvalues ) {
@@ -89,7 +89,8 @@ modify_add_values(
                                                &a->a_vals[j], &mod->sm_values[i], text );
                                }
 
-                               if( rc != LDAP_SUCCESS ) {
+                               if( rc == LDAP_SUCCESS && match == 0 ) {
+                                       /* value already exists */
                                        *text = textbuf;
                                        snprintf( textbuf, textlen,
                                                "modify/%s: %s: value #%d already exists",