From 68fa27c13d20543065dbb112ea99ba01e17aa91c Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Mon, 8 Oct 2007 11:52:25 +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 5e413c2451..ecde2e5c77 100644 --- a/libraries/libldap/cyrus.c +++ b/libraries/libldap/cyrus.c @@ -899,6 +899,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; @@ -908,7 +910,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 @@ -1206,6 +1208,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; @@ -1220,7 +1224,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 d9a604efc1..0b3288d2c4 100644 --- a/servers/slapd/sasl.c +++ b/servers/slapd/sasl.c @@ -1448,12 +1448,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; @@ -1622,7 +1623,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.5