/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2008 The OpenLDAP Foundation.
+ * Copyright 1998-2011 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
e->e_dn == NULL ? "" : e->e_dn,
oc->soc_oclass.oc_oid, 0 );
+ /* mark flags as set */
+ e->e_ocflags |= SLAP_OC__END;
+
return 0;
}
oc->soc_cname.bv_len = ocname->bv_len;
oc->soc_cname.bv_val = (char *)&oc[ 1 ];
AC_MEMCPY( oc->soc_cname.bv_val, ocname->bv_val, ocname->bv_len );
+ oc->soc_cname.bv_val[ oc->soc_cname.bv_len ] = '\0';
/* canonical to upper case */
ldap_pvt_str2upper( oc->soc_cname.bv_val );
assert( oc_bvfind( &oir->oir_name ) != NULL );
}
+ assert( soc != NULL );
+
if ( (names = soc->soc_names) ) {
while ( *names ) {
oir = (struct oindexrec *)
oir->oir_name.bv_len = strlen( *names );
oir->oir_oc = soc;
- assert( oir->oir_name.bv_val != NULL );
- assert( oir->oir_oc != NULL );
-
if ( avl_insert( &oc_index, (caddr_t) oir,
oc_index_cmp, avl_dup_error ) )
{
ch_free( soc->soc_allowed );
}
+ if ( soc->soc_oidmacro ) {
+ ch_free( soc->soc_oidmacro );
+ }
+
ch_free( soc );
} else if ( rsoc ) {