X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fsasl.c;h=c7b18ac91dd5a7f633a4e1924e40426ce3c1be2c;hb=3d39ff68a94e4455074707d763138f01aaa1c5b1;hp=20840958822fbda334f52b336dc502cf47bdc3a5;hpb=acbb5cf689a4336af05c9f259d909d8141055bac;p=openldap diff --git a/libraries/libldap/sasl.c b/libraries/libldap/sasl.c index 2084095882..c7b18ac91d 100644 --- a/libraries/libldap/sasl.c +++ b/libraries/libldap/sasl.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2006 The OpenLDAP Foundation. + * Copyright 1998-2007 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -12,9 +12,6 @@ * top-level directory of the distribution or, alternatively, at * . */ -/* Portions Copyright (C) The Internet Society (1997) - * ASN.1 fragments are from RFC 2251; see RFC for full legal notices. - */ /* * BindRequest ::= SEQUENCE { @@ -22,10 +19,8 @@ * name DistinguishedName, -- who * authentication CHOICE { * simple [0] OCTET STRING -- passwd -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND - * krbv42ldap [1] OCTET STRING - * krbv42dsa [2] OCTET STRING -#endif + * krbv42ldap [1] OCTET STRING -- OBSOLETE + * krbv42dsa [2] OCTET STRING -- OBSOLETE * sasl [3] SaslCredentials -- LDAPv3 * } * } @@ -196,7 +191,7 @@ ldap_sasl_bind_s( } #endif - if ( ldap_result( ld, msgid, LDAP_MSG_ALL, NULL, &result ) == -1 ) { + if ( ldap_result( ld, msgid, LDAP_MSG_ALL, NULL, &result ) == -1 || !result ) { return( ld->ld_errno ); /* ldap_result sets ld_errno */ } @@ -206,7 +201,7 @@ ldap_sasl_bind_s( rc = ldap_parse_sasl_bind_result( ld, result, &scredp, 0 ); } - if ( rc != LDAP_SUCCESS && rc != LDAP_SASL_BIND_IN_PROGRESS ) { + if ( rc != LDAP_SUCCESS ) { ldap_msgfree( result ); return( rc ); } @@ -294,13 +289,8 @@ ldap_parse_sasl_bind_result( } if ( ld->ld_version < LDAP_VERSION2 ) { -#ifdef LDAP_NULL_IS_NULL tag = ber_scanf( ber, "{iA}", &errcode, &ld->ld_error ); -#else /* ! LDAP_NULL_IS_NULL */ - tag = ber_scanf( ber, "{ia}", - &errcode, &ld->ld_error ); -#endif /* ! LDAP_NULL_IS_NULL */ if( tag == LBER_ERROR ) { ber_free( ber, 0 ); @@ -311,13 +301,8 @@ ldap_parse_sasl_bind_result( } else { ber_len_t len; -#ifdef LDAP_NULL_IS_NULL tag = ber_scanf( ber, "{eAA" /*}*/, &errcode, &ld->ld_matched, &ld->ld_error ); -#else /* ! LDAP_NULL_IS_NULL */ - tag = ber_scanf( ber, "{eaa" /*}*/, - &errcode, &ld->ld_matched, &ld->ld_error ); -#endif /* ! LDAP_NULL_IS_NULL */ if( tag == LBER_ERROR ) { ber_free( ber, 0 ); @@ -362,7 +347,7 @@ ldap_parse_sasl_bind_result( ldap_msgfree( res ); } - return( ld->ld_errno ); + return( LDAP_SUCCESS ); } int