From 4b310215896250168176f06e1ba7e073746b1b51 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 8 Oct 2007 11:53:53 +0000 Subject: [PATCH] ITS#3864 from HEAD --- libraries/libldap/cyrus.c | 9 +++++++-- servers/slapd/sasl.c | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libraries/libldap/cyrus.c b/libraries/libldap/cyrus.c index bddff71a49..ad06593111 100644 --- a/libraries/libldap/cyrus.c +++ b/libraries/libldap/cyrus.c @@ -898,6 +898,8 @@ ldap_int_sasl_external( sasl_conn_t *ctx; #if SASL_VERSION_MAJOR < 2 sasl_external_properties_t extprops; +#else + sasl_ssf_t sasl_ssf = ssf; #endif ctx = conn->lconn_sasl_authctx; @@ -907,7 +909,7 @@ ldap_int_sasl_external( } #if SASL_VERSION_MAJOR >= 2 - sc = sasl_setprop( ctx, SASL_SSF_EXTERNAL, &ssf ); + sc = sasl_setprop( ctx, SASL_SSF_EXTERNAL, &sasl_ssf ); if ( sc == SASL_OK ) sc = sasl_setprop( ctx, SASL_AUTH_EXTERNAL, authid ); #else @@ -1205,6 +1207,8 @@ ldap_int_sasl_set_option( LDAP *ld, int option, void *arg ) int sc; #if SASL_VERSION_MAJOR < 2 sasl_external_properties_t extprops; +#else + sasl_ssf_t sasl_ssf; #endif sasl_conn_t *ctx; @@ -1219,7 +1223,8 @@ ldap_int_sasl_set_option( LDAP *ld, int option, void *arg ) } #if SASL_VERSION_MAJOR >= 2 - sc = sasl_setprop( ctx, SASL_SSF_EXTERNAL, arg); + sasl_ssf = * (ber_len_t *)arg; + sc = sasl_setprop( ctx, SASL_SSF_EXTERNAL, &sasl_ssf); #else memset(&extprops, 0L, sizeof(extprops)); diff --git a/servers/slapd/sasl.c b/servers/slapd/sasl.c index c99d721d88..48d349d5b9 100644 --- a/servers/slapd/sasl.c +++ b/servers/slapd/sasl.c @@ -1191,12 +1191,13 @@ int slap_sasl_external( #if SASL_VERSION_MAJOR >= 2 int sc; sasl_conn_t *ctx = conn->c_sasl_authctx; + sasl_ssf_t sasl_ssf = ssf; if ( ctx == NULL ) { return LDAP_UNAVAILABLE; } - sc = sasl_setprop( ctx, SASL_SSF_EXTERNAL, &ssf ); + sc = sasl_setprop( ctx, SASL_SSF_EXTERNAL, &sasl_ssf ); if ( sc != SASL_OK ) { return LDAP_OTHER; @@ -1365,7 +1366,7 @@ int slap_sasl_bind( Operation *op, SlapReply *rs ) if ( !op->o_conn->c_sasl_bind_in_progress ) { /* If we already authenticated once, must use a new context */ if ( op->o_conn->c_sasl_done ) { - slap_ssf_t ssf = 0; + sasl_ssf_t ssf = 0; const char *authid = NULL; #if SASL_VERSION_MAJOR >= 2 sasl_getprop( ctx, SASL_SSF_EXTERNAL, (void *)&ssf ); -- 2.39.2