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

index 5e413c2451873f12ecf5d7fa0441752940a3a4ba..ecde2e5c774d8a386808f8f70c4a455cdb1369a1 100644 (file)
@@ -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));
 
index d9a604efc1e08a2f9740e28505fc3b72ed7eba76..0b3288d2c44f779c68da6321e2578cac7a6f3231 100644 (file)
@@ -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 );