]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/sasl.c
update for new backend types
[openldap] / servers / slapd / sasl.c
index 91b56529336de3f5d2b6d3f570b6d5897d50fdb3..5aac28e25ef01ef0fc8af6d02ca0709a7146eff2 100644 (file)
@@ -654,7 +654,17 @@ slap_sasl_authorize(
                return SASL_NOAUTHZ;
        }
 
-       conn->c_sasl_authz_dn = authzDN;
+       /* FIXME: we need yet another dup because slap_sasl_getdn()
+        * is using the bind operation slab */
+       if ( conn->c_sasl_bindop ) {
+               ber_dupbv( &conn->c_sasl_authz_dn, &authzDN );
+               slap_sl_free( authzDN.bv_val,
+                               conn->c_sasl_bindop->o_tmpmemctx );
+
+       } else {
+               conn->c_sasl_authz_dn = authzDN;
+       }
+
 ok:
        if (conn->c_sasl_bindop) {
                Statslog( LDAP_DEBUG_STATS,
@@ -1544,7 +1554,7 @@ int slap_sasl_getdn( Connection *conn, Operation *op, struct berval *id,
        if ( !op ) {
                op = conn->c_sasl_bindop;
        }
-       assert( op );
+       assert( op != NULL );
 
        BER_BVZERO( dn );