From: Kurt Zeilenga Date: Tue, 16 May 2000 01:45:15 +0000 (+0000) Subject: Fix sasl passwd handling (needs to be copied to other tools) X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~2955 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ebfe58344c63a5fd99caf37f72a6acf02e6afc0e;p=openldap Fix sasl passwd handling (needs to be copied to other tools) --- diff --git a/clients/tools/ldapsearch.c b/clients/tools/ldapsearch.c index f865bedcab..096568345c 100644 --- a/clients/tools/ldapsearch.c +++ b/clients/tools/ldapsearch.c @@ -120,7 +120,7 @@ static char *tmpdir = NULL; static char *urlpre = NULL; static char *binddn = NULL; -static char *passwd = NULL; +static struct berval passwd = { 0, NULL }; static char *base = NULL; static char *ldaphost = NULL; static int ldapport = 0; @@ -263,7 +263,7 @@ main( int argc, char **argv ) ldapport = atoi( optarg ); break; case 'w': /* bind password */ - passwd = strdup( optarg ); + passwd.bv_val = strdup( optarg ); { char* p; @@ -271,6 +271,7 @@ main( int argc, char **argv ) *p = '*'; } } + passwd.bv_len = strlen( passwd.bv_val ); break; case 'l': /* time limit */ timelimit = atoi( optarg ); @@ -520,7 +521,8 @@ main( int argc, char **argv ) } if (want_bindpw) { - passwd = getpass("Enter LDAP Password: "); + passwd.bv_val = getpass("Enter LDAP Password: "); + passwd.bv_len = strlen( passwd.bv_val ); } if ( authmethod == LDAP_AUTH_SASL ) { @@ -549,9 +551,12 @@ main( int argc, char **argv ) return( EXIT_FAILURE ); } - if ( ldap_negotiated_sasl_bind_s( ld, binddn, sasl_authc_id, - sasl_authz_id, sasl_mech, NULL, NULL, NULL ) - != LDAP_SUCCESS ) { + rc = ldap_negotiated_sasl_bind_s( ld, binddn, sasl_authc_id, + sasl_authz_id, sasl_mech, + passwd.bv_len ? &passwd : NULL, + NULL, NULL ); + + if( rc != LDAP_SUCCESS ) { ldap_perror( ld, "ldap_negotiated_sasl_bind_s" ); return( EXIT_FAILURE ); } @@ -562,7 +567,7 @@ main( int argc, char **argv ) #endif } else { - if ( ldap_bind_s( ld, binddn, passwd, authmethod ) + if ( ldap_bind_s( ld, binddn, passwd.bv_val, authmethod ) != LDAP_SUCCESS ) { ldap_perror( ld, "ldap_bind" ); return( EXIT_FAILURE );