Skip to content
Snippets Groups Projects
Commit cd84c58d authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

Fix: ldapadd with undefined objectclass causes assertion failure (ITS#3097)

parent 2320192d
No related branches found
No related tags found
No related merge requests found
......@@ -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;
}
}
}
......
......@@ -790,7 +790,7 @@ int slap_mods_check(
}
} else {
int rc = LDAP_SUCCESS;
int rc;
int match;
for ( i = 1; ml->sml_values[i].bv_val != NULL; i++ ) {
......@@ -815,11 +815,12 @@ int slap_mods_check(
ml->sml_desc->ad_cname.bv_val, j );
*text = textbuf;
return LDAP_TYPE_OR_VALUE_EXISTS;
} else if ( rc != LDAP_SUCCESS ) {
return rc;
}
}
}
if ( rc != LDAP_SUCCESS ) return rc;
}
}
......
......@@ -110,6 +110,9 @@ modify_add_values(
"modify/%s: %s: value #%d already exists",
op, mod->sm_desc->ad_cname.bv_val, i );
return LDAP_TYPE_OR_VALUE_EXISTS;
} else if ( rc != LDAP_SUCCESS ) {
return rc;
}
}
......
......@@ -70,12 +70,12 @@ objectSubClassMatch(
}
/* desc form, return undefined */
return SLAPD_COMPARE_UNDEFINED;
return LDAP_INVALID_SYNTAX;
}
if ( oc == NULL ) {
/* unrecognized stored value */
return SLAPD_COMPARE_UNDEFINED;
return LDAP_INVALID_SYNTAX;
}
if( SLAP_MR_IS_VALUE_OF_ATTRIBUTE_SYNTAX( flags ) ) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment