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

This commit is contained in:
Kurt Zeilenga 2004-04-19 19:27:51 +00:00
parent 2320192db0
commit cd84c58d4a
4 changed files with 14 additions and 9 deletions

View File

@ -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;
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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 ) ) {