From: Howard Chu Date: Mon, 8 Oct 2007 11:53:53 +0000 (+0000) Subject: ITS#3864 from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_3_39~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b310215896250168176f06e1ba7e073746b1b51;p=thirdparty%2Fopenldap.git ITS#3864 from HEAD --- 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 );