From: Howard Chu Date: Tue, 2 Dec 2003 00:49:26 +0000 (+0000) Subject: Fix prev commit, return generated passwd X-Git-Tag: OPENLDAP_REL_ENG_2_1_MP~302 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=49b0985c88ea6836a24c314aea2cb2dd0d129544;p=openldap Fix prev commit, return generated passwd --- diff --git a/servers/slapd/passwd.c b/servers/slapd/passwd.c index 0138b24933..b649d9cc44 100644 --- a/servers/slapd/passwd.c +++ b/servers/slapd/passwd.c @@ -33,8 +33,7 @@ int passwd_extop( SlapReply *rs ) { struct berval id = {0, NULL}, old = {0, NULL}, new = {0, NULL}, - dn, ndn, hash, vals[2], tmpbv; - int freenew = 0; + dn, ndn, hash, vals[2], tmpbv, *rsp = NULL; Modifications ml, **modtail; Operation op2; slap_callback cb = { slap_null_cb, NULL }; @@ -126,14 +125,14 @@ int passwd_extop( if ( new.bv_len == 0 ) { slap_passwd_generate( &new ); - freenew = 1; + rsp = slap_passwd_return( &new ); } if ( new.bv_len == 0 ) { rs->sr_text = "password generation failed"; return LDAP_OTHER; } slap_passwd_hash( &new, &hash, &rs->sr_text ); - if ( freenew ) { + if ( rsp ) { free( new.bv_val ); } if ( hash.bv_len == 0 ) { @@ -163,9 +162,12 @@ int passwd_extop( if ( rs->sr_err == LDAP_SUCCESS ) { rs->sr_err = op2.o_bd->be_modify( &op2, rs ); - if ( rs->sr_err == LDAP_SUCCESS ) { - replog( &op2 ); - } + } + if ( rs->sr_err == LDAP_SUCCESS ) { + replog( &op2 ); + rs->sr_rspdata = rsp; + } else if ( rsp ) { + ber_bvfree( rsp ); } slap_mods_free( ml.sml_next ); free( hash.bv_val );