X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foverlays%2Fmemberof.c;h=09edce82b7f6f662703849bf90c0132c9c61f8a2;hb=76754855e81c68071d79e7f06978c4f394ca4228;hp=0dec9c86ed2396fe3cd2ad37133b4fd0272032cf;hpb=38f2124c4d799cddd86ee507964cfb573b08463d;p=openldap diff --git a/servers/slapd/overlays/memberof.c b/servers/slapd/overlays/memberof.c index 0dec9c86ed..09edce82b7 100644 --- a/servers/slapd/overlays/memberof.c +++ b/servers/slapd/overlays/memberof.c @@ -194,7 +194,7 @@ memberof_saved_member_free( void *key, void *data ) static BerVarray memberof_saved_member_get( Operation *op, void *keyp ) { - BerVarray vals; + void *vals; BerVarray *key = (BerVarray *)keyp; assert( op != NULL ); @@ -204,10 +204,8 @@ memberof_saved_member_get( Operation *op, void *keyp ) *key = NULL; } else { - ldap_pvt_thread_pool_getkey( op->o_threadctx, - key, (void **)&vals, NULL ); ldap_pvt_thread_pool_setkey( op->o_threadctx, - key, NULL, NULL ); + key, NULL, 0, &vals, NULL ); } return vals; @@ -232,9 +230,9 @@ memberof_saved_member_set( Operation *op, void *keyp, BerVarray vals ) *key = saved_vals; } else { - BerVarray old_vals = NULL; + void *old_vals = NULL; - ldap_pvt_thread_pool_setkey_x( op->o_threadctx, key, + ldap_pvt_thread_pool_setkey( op->o_threadctx, key, saved_vals, memberof_saved_member_free, &old_vals, NULL ); if ( old_vals != NULL ) { ber_bvarray_free( old_vals ); @@ -472,8 +470,10 @@ memberof_value_modify( char buf[ SLAP_TEXT_BUFLEN ]; snprintf( buf, sizeof( buf ), "memberof_value_modify %s=\"%s\" failed err=%d text=%s", - ad->ad_cname.bv_val, new_dn->bv_val, rs2.sr_err, rs2.sr_text ); - Debug( LDAP_DEBUG_ANY, "%s: %s\n", op->o_log_prefix, buf, 0 ); + ad->ad_cname.bv_val, new_dn->bv_val, rs2.sr_err, + rs2.sr_text ? rs2.sr_text : "" ); + Debug( LDAP_DEBUG_ANY, "%s: %s\n", + op->o_log_prefix, buf, 0 ); } assert( op2.orm_modlist == &mod[ mcnt ] ); @@ -486,6 +486,8 @@ memberof_value_modify( if ( ml != NULL ) { slap_mods_free( ml, 1 ); } + + mod[ 0 ].sml_next = NULL; } if ( old_ndn != NULL ) { @@ -503,8 +505,10 @@ memberof_value_modify( char buf[ SLAP_TEXT_BUFLEN ]; snprintf( buf, sizeof( buf ), "memberof_value_modify %s=\"%s\" failed err=%d text=%s", - ad->ad_cname.bv_val, old_dn->bv_val, rs2.sr_err, rs2.sr_text ); - Debug( LDAP_DEBUG_ANY, "%s: %s\n", op->o_log_prefix, buf, 0 ); + ad->ad_cname.bv_val, old_dn->bv_val, rs2.sr_err, + rs2.sr_text ? rs2.sr_text : "" ); + Debug( LDAP_DEBUG_ANY, "%s: %s\n", + op->o_log_prefix, buf, 0 ); } assert( op2.orm_modlist == &mod[ mcnt ] ); @@ -1509,7 +1513,7 @@ memberof_db_init( ConfigReply *cr ) { slap_overinst *on = (slap_overinst *)be->bd_info; - memberof_t tmp_mo = { 0 }, *mo; + memberof_t *mo; mo = (memberof_t *)ch_calloc( 1, sizeof( memberof_t ) );