From cb3137d756c190145c590496cabb7731424906cd Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga <kurt@openldap.org> Date: Wed, 17 May 2006 17:27:21 +0000 Subject: [PATCH] Misc changes from HEAD --- servers/slapd/back-meta/bind.c | 18 +++++++++++++----- servers/slapd/slapi/slapi_overlay.c | 4 +++- servers/slapd/slapi/slapi_pblock.c | 10 ++++++---- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/servers/slapd/back-meta/bind.c b/servers/slapd/back-meta/bind.c index 9b654c7584..cd79a04ced 100644 --- a/servers/slapd/back-meta/bind.c +++ b/servers/slapd/back-meta/bind.c @@ -636,13 +636,21 @@ retry:; done:; rs->sr_err = rc; - if ( rc != LDAP_SUCCESS && META_BACK_ONERR_STOP( mi ) ) { + if ( rc != LDAP_SUCCESS ) { + if ( dolock ) { + ldap_pvt_thread_mutex_lock( &mi->mi_conninfo.lai_mutex ); + } LDAP_BACK_CONN_BINDING_CLEAR( msc ); - LDAP_BACK_CONN_TAINTED_SET( mc ); - meta_back_release_conn_lock( op, mc, dolock ); - *mcp = NULL; + if ( META_BACK_ONERR_STOP( mi ) ) { + LDAP_BACK_CONN_TAINTED_SET( mc ); + meta_back_release_conn_lock( op, mc, dolock ); + *mcp = NULL; + } + if ( dolock ) { + ldap_pvt_thread_mutex_unlock( &mi->mi_conninfo.lai_mutex ); + } - if ( sendok & LDAP_BACK_SENDERR ) { + if ( META_BACK_ONERR_STOP( mi ) && ( sendok & LDAP_BACK_SENDERR ) ) { send_ldap_result( op, rs ); } } diff --git a/servers/slapd/slapi/slapi_overlay.c b/servers/slapd/slapi/slapi_overlay.c index 0fb616118f..12425f06c1 100644 --- a/servers/slapd/slapi/slapi_overlay.c +++ b/servers/slapd/slapi/slapi_overlay.c @@ -97,12 +97,14 @@ slapi_over_compute_output( { Attribute **a; AttributeDescription *desc; - SlapReply *rs = (SlapReply *)c->cac_private; + SlapReply *rs; if ( c == NULL || attribute == NULL || entry == NULL ) { return 0; } + rs = (SlapReply *)c->cac_private; + assert( rs->sr_entry == entry ); desc = attribute->a_desc; diff --git a/servers/slapd/slapi/slapi_pblock.c b/servers/slapd/slapi/slapi_pblock.c index 7ced845876..ea6d4edcb2 100644 --- a/servers/slapd/slapi/slapi_pblock.c +++ b/servers/slapd/slapi/slapi_pblock.c @@ -624,7 +624,7 @@ pblock_get( Slapi_PBlock *pb, int param, void **value ) break; case SLAPI_MODIFY_MODS: { LDAPMod **mods = NULL; - Modifications *ml; + Modifications *ml = NULL; pblock_get_default( pb, param, (void **)&mods ); if ( mods == NULL && pb->pb_intop == 0 ) { @@ -635,12 +635,14 @@ pblock_get( Slapi_PBlock *pb, int param, void **value ) case LDAP_REQ_MODRDN: ml = pb->pb_op->orr_modlist; break; - defaulat: + default: rc = PBLOCK_ERROR; break; } - mods = slapi_int_modifications2ldapmods( ml ); - pblock_set_default( pb, param, (void *)mods ); + if ( rc != PBLOCK_ERROR ) { + mods = slapi_int_modifications2ldapmods( ml ); + pblock_set_default( pb, param, (void *)mods ); + } } *((LDAPMod ***)value) = mods; break; -- GitLab