Skip to content
Snippets Groups Projects
Commit 6db02281 authored by Gary Williams's avatar Gary Williams
Browse files

validate object class before checking required and allowed

parent 40fa9d36
No related branches found
No related tags found
No related merge requests found
......@@ -28,9 +28,11 @@ int
oc_schema_check( Entry *e )
{
Attribute *a, *aoc;
ObjectClass *oc;
int i;
int ret = 0;
/* find the object class attribute - could error out here */
if ( (aoc = attr_find( e->e_attrs, "objectclass" )) == NULL ) {
Debug( LDAP_DEBUG_ANY, "No object class for entry (%s)\n",
......@@ -40,14 +42,23 @@ oc_schema_check( Entry *e )
/* check that the entry has required attrs for each oc */
for ( i = 0; aoc->a_vals[i] != NULL; i++ ) {
char *s = oc_check_required( e, aoc->a_vals[i]->bv_val );
if (s != NULL) {
if ( (oc = oc_find( aoc->a_vals[i]->bv_val )) == NULL ) {
Debug( LDAP_DEBUG_ANY,
"Entry (%s), oc \"%s\" requires attr \"%s\"\n",
e->e_dn, aoc->a_vals[i]->bv_val, s );
"Objectclass \"%s\" not defined",
aoc->a_vals[i]->bv_val, 0, 0 );
ret = 1;
}
else
{
char *s = oc_check_required( e, aoc->a_vals[i]->bv_val );
if (s != NULL) {
Debug( LDAP_DEBUG_ANY,
"Entry (%s), oc \"%s\" requires attr \"%s\"\n",
e->e_dn, aoc->a_vals[i]->bv_val, s );
ret = 1;
}
}
}
if ( ret != 0 ) {
......
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