X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fpasswd.c;h=ebb98e23c0573c225745c3fd18e479e2636235a2;hb=1939ed3fc29d0d1c01a0a9390d2c51ac2a85260f;hp=fef49ef8b7b8db917e6538c971df2d29b8f57db4;hpb=0e6aa53cd10d62c9924d4cdc5ce44a592f81c76a;p=openldap diff --git a/servers/slapd/passwd.c b/servers/slapd/passwd.c index fef49ef8b7..ebb98e23c0 100644 --- a/servers/slapd/passwd.c +++ b/servers/slapd/passwd.c @@ -33,6 +33,8 @@ #include #include +const struct berval slap_EXOP_MODIFY_PASSWD = BER_BVC(LDAP_EXOP_MODIFY_PASSWD); + static const char *defhash[] = { #ifdef LUTIL_SHA1_BYTES "{SSHA}", @@ -280,8 +282,13 @@ old_good: * if it cares... */ rs->sr_err = op->o_bd->be_modify( op, rs ); + + /* be_modify() might have shuffled modifications */ + qpw->rs_mods = op->orm_modlist; + if ( rs->sr_err == LDAP_SUCCESS ) { rs->sr_rspdata = rsp; + } else if ( rsp ) { ber_bvfree( rsp ); rsp = NULL; @@ -518,8 +525,7 @@ void slap_passwd_generate( struct berval *pass ) { Debug( LDAP_DEBUG_TRACE, "slap_passwd_generate\n", 0, 0, 0 ); - pass->bv_val = NULL; - pass->bv_len = 0; + BER_BVZERO( pass ); /* * generate passwords of only 8 characters as some getpass(3)