]> git.sur5r.net Git - openldap/commitdiff
Misc changes from HEAD
authorKurt Zeilenga <kurt@openldap.org>
Wed, 17 May 2006 17:27:21 +0000 (17:27 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Wed, 17 May 2006 17:27:21 +0000 (17:27 +0000)
servers/slapd/back-meta/bind.c
servers/slapd/slapi/slapi_overlay.c
servers/slapd/slapi/slapi_pblock.c

index 9b654c75842305f78ba2e5b3c1087a81e224f5b9..cd79a04ced6ab3e6392cafe01782ef6dadfa236e 100644 (file)
@@ -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 );
                }
        }
index 0fb616118fd5fc6adc2a2932e7fa28e2aeae7e48..12425f06c1067c83448ddf365822e1ec5af3cd56 100644 (file)
@@ -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;
index 7ced8458766f1973134081c6dc79c1ca3ba5a325..ea6d4edcb2ae8eaee35e99b34cfd04e6264b7f08 100644 (file)
@@ -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;