mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
ITS#2717, use default SASL_MECH if none was provided.
Note that the mech stored in the void *defaults structure is useless because we can't look inside the structure, and the mech list is needed as input to the SASL library, before any callbacks are called. It seems the mech doesn't belong in the *defaults struct, and/or it should be visible and not opaque.
This commit is contained in:
parent
089a4852d6
commit
38a406c8ab
1 changed files with 6 additions and 2 deletions
|
|
@ -433,6 +433,7 @@ ldap_sasl_interactive_bind_s(
|
|||
void *defaults )
|
||||
{
|
||||
int rc;
|
||||
char *smechs = NULL;
|
||||
|
||||
#if defined( LDAP_R_COMPILE ) && defined( HAVE_CYRUS_SASL )
|
||||
ldap_pvt_thread_mutex_lock( &ldap_int_sasl_mutex );
|
||||
|
|
@ -449,8 +450,10 @@ ldap_sasl_interactive_bind_s(
|
|||
} else
|
||||
#endif
|
||||
if( mechs == NULL || *mechs == '\0' ) {
|
||||
char *smechs;
|
||||
|
||||
mechs = ld->ld_options.ldo_def_sasl_mech;
|
||||
}
|
||||
|
||||
if( mechs == NULL || *mechs == '\0' ) {
|
||||
rc = ldap_pvt_sasl_getmechs( ld, &smechs );
|
||||
if( rc != LDAP_SUCCESS ) {
|
||||
goto done;
|
||||
|
|
@ -488,6 +491,7 @@ done:
|
|||
#if defined( LDAP_R_COMPILE ) && defined( HAVE_CYRUS_SASL )
|
||||
ldap_pvt_thread_mutex_unlock( &ldap_int_sasl_mutex );
|
||||
#endif
|
||||
if ( smechs ) LDAP_FREE( smechs );
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue