ITS#4954 clear c_sasl_dn after error

This commit is contained in:
Howard Chu 2007-05-10 19:34:27 +00:00
parent 2779af4730
commit e86e4f98af

View file

@ -610,6 +610,7 @@ slap_sasl_canonicalize(
*/ */
if ( flags == SASL_CU_AUTHID && !auxvals[SLAP_SASL_PROP_AUTHZ].values ) { if ( flags == SASL_CU_AUTHID && !auxvals[SLAP_SASL_PROP_AUTHZ].values ) {
conn->c_sasl_dn.bv_val = (char *) in; conn->c_sasl_dn.bv_val = (char *) in;
conn->c_sasl_dn.bv_len = 0;
} else if ( flags == SASL_CU_AUTHZID && conn->c_sasl_dn.bv_val ) { } else if ( flags == SASL_CU_AUTHZID && conn->c_sasl_dn.bv_val ) {
rc = strcmp( in, conn->c_sasl_dn.bv_val ); rc = strcmp( in, conn->c_sasl_dn.bv_val );
conn->c_sasl_dn.bv_val = NULL; conn->c_sasl_dn.bv_val = NULL;
@ -1710,6 +1711,9 @@ int slap_sasl_bind( Operation *op, SlapReply *rs )
send_ldap_sasl( op, rs ); send_ldap_sasl( op, rs );
} else { } else {
if ( op->o_conn->c_sasl_dn.bv_len )
ch_free( op->o_conn->c_sasl_dn.bv_val );
BER_BVZERO( &op->o_conn->c_sasl_dn );
#if SASL_VERSION_MAJOR >= 2 #if SASL_VERSION_MAJOR >= 2
rs->sr_text = sasl_errdetail( ctx ); rs->sr_text = sasl_errdetail( ctx );
#endif #endif