]> git.sur5r.net Git - openldap/commitdiff
ITS#3864 from HEAD
authorHoward Chu <hyc@openldap.org>
Mon, 8 Oct 2007 11:53:53 +0000 (11:53 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 8 Oct 2007 11:53:53 +0000 (11:53 +0000)
libraries/libldap/cyrus.c
servers/slapd/sasl.c

index bddff71a498c387f5374cdf75a860e9c06a0af39..ad06593111377d96706b77a099abe2bea0b32a56 100644 (file)
@@ -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));
 
index c99d721d88e77710731fd97d665e895f48f3ff9b..48d349d5b94a6b2f293413ec3e830cecc22f9b6e 100644 (file)
@@ -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 );