BerVarray vals;
BerVarray *key = (BerVarray *)keyp;
- assert( op );
+ assert( op != NULL );
if ( op->o_threadctx == NULL ) {
vals = *key;
BerVarray saved_vals = NULL;
BerVarray *key = (BerVarray*)keyp;
- assert( op );
+ assert( op != NULL );
if ( vals ) {
ber_bvarray_dup_x( &saved_vals, vals, NULL );
mc = (memberof_cookie_t *)op->o_callback->sc_private;
mc->foundit = 1;
- assert( rs->sr_entry );
- assert( rs->sr_entry->e_attrs );
+ assert( rs->sr_entry != NULL );
+ assert( rs->sr_entry->e_attrs != NULL );
a = attr_find( rs->sr_entry->e_attrs, mc->ad );
op2.o_ndn = op->o_bd->be_rootndn;
ml = &mod[ 0 ];
+ ml->sml_numvals = 1;
ml->sml_values = &values[ 0 ];
ml->sml_values[ 0 ] = mo->mo_dn;
BER_BVZERO( &ml->sml_values[ 1 ] );
op2.orm_modlist = ml;
ml = &mod[ 1 ];
+ ml->sml_numvals = 1;
ml->sml_values = &values[ 2 ];
BER_BVZERO( &ml->sml_values[ 1 ] );
ml->sml_nvalues = &nvalues[ 2 ];
case LDAP_MOD_ADD:
/* NOTE: right now, the attributeType we use
* for member must have a normalized value */
- assert( ml->sml_nvalues );
+ assert( ml->sml_nvalues != NULL );
for ( i = 0; !BER_BVISNULL( &ml->sml_nvalues[ i ] ); i++ ) {
int rc;
BER_BVZERO( &ml->sml_values[ i ] );
ber_memfree( ml->sml_nvalues[ i ].bv_val );
BER_BVZERO( &ml->sml_nvalues[ i ] );
+ ml->sml_numvals--;
if ( j - i == 1 ) {
break;
}
ber_memfree( ml->sml_nvalues[ i ].bv_val );
BER_BVZERO( &ml->sml_nvalues[ i ] );
}
+ ml->sml_numvals--;
if ( j - i == 1 ) {
break;
}
ber_memfree( ml->sml_nvalues[ i ].bv_val );
BER_BVZERO( &ml->sml_nvalues[ i ] );
}
+ ml->sml_numvals--;
if ( j - i == 1 ) {
break;
}
ConfigReply *cr )
{
slap_overinst *on = (slap_overinst *)be->bd_info;
- memberof_t *mo;
+ memberof_t tmp_mo = { 0 }, *mo;
int rc;
const char *text = NULL;
- mo = (memberof_t *)ch_calloc( 1, sizeof( memberof_t ) );
-
- rc = slap_str2ad( SLAPD_MEMBEROF_ATTR, &mo->mo_ad_memberof, &text );
+ rc = slap_str2ad( SLAPD_MEMBEROF_ATTR, &tmp_mo.mo_ad_memberof, &text );
if ( rc != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_ANY,
"memberof_db_init: "
return rc;
}
- rc = slap_str2ad( SLAPD_GROUP_ATTR, &mo->mo_ad_member, &text );
+ rc = slap_str2ad( SLAPD_GROUP_ATTR, &tmp_mo.mo_ad_member, &text );
if ( rc != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_ANY,
"memberof_db_init: "
return rc;
}
- mo->mo_oc_group = oc_find( SLAPD_GROUP_CLASS );
- if ( mo->mo_oc_group == NULL ) {
+ tmp_mo.mo_oc_group = oc_find( SLAPD_GROUP_CLASS );
+ if ( tmp_mo.mo_oc_group == NULL ) {
Debug( LDAP_DEBUG_ANY,
"memberof_db_init: "
"unable to find objectClass=\"%s\"\n",
return 1;
}
+ mo = (memberof_t *)ch_calloc( 1, sizeof( memberof_t ) );
+ *mo = tmp_mo;
+
on->on_bi.bi_private = (void *)mo;
return 0;