rc = over_db_func( be, db_destroy );
- for (next = on->on_next; on; on=next) {
- next = on->on_next;
- free( on );
+ if ( on ) {
+ for (next = on->on_next; on; on=next) {
+ next = on->on_next;
+ free( on );
+ }
}
+
free( oi );
return rc;
}
return rc;
}
-#ifdef SLAP_OVERLAY_ACCESS
static int
over_access_allowed(
Operation *op,
return rc;
}
-#endif /* SLAP_OVERLAY_ACCESS */
/*
* default return code in case of missing backend function
bi->bi_chk_referrals = over_aux_chk_referrals;
bi->bi_chk_controls = over_aux_chk_controls;
-#ifdef SLAP_OVERLAY_ACCESS
/* these have specific arglists */
bi->bi_access_allowed = over_access_allowed;
bi->bi_acl_group = over_acl_group;
bi->bi_acl_attribute = over_acl_attribute;
-#endif /* SLAP_OVERLAY_ACCESS */
bi->bi_connection_init = over_connection_init;
bi->bi_connection_destroy = over_connection_destroy;
be->bd_info = (BackendInfo *)on2;
rc = on2->on_bi.bi_db_init( be );
be->bd_info = (BackendInfo *)oi;
- if ( rc ) return rc;
+ if ( rc ) {
+ oi->oi_list = on2->on_next;
+ ch_free( on2 );
+ return rc;
+ }
}
return 0;