mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
ITS#4049,4051 - verify oldPassword when provided.
This commit is contained in:
parent
2821dcb04c
commit
d878abf48f
@ -209,11 +209,27 @@ int passwd_extop(
|
||||
}
|
||||
|
||||
if ( qpw->rs_old.bv_val != NULL ) {
|
||||
Entry *e = NULL;
|
||||
|
||||
rc = be_entry_get_rw( op, &op->o_req_ndn, NULL,
|
||||
slap_schema.si_ad_userPassword, 0, &e );
|
||||
if ( rc == LDAP_SUCCESS && e ) {
|
||||
Attribute *a = attr_find( e->e_attrs,
|
||||
slap_schema.si_ad_userPassword );
|
||||
if ( a )
|
||||
rc = slap_passwd_check( op, e, a, &qpw->rs_old, &rs->sr_text );
|
||||
else
|
||||
rc = 1;
|
||||
be_entry_release_r( op, e );
|
||||
if ( rc == LDAP_SUCCESS )
|
||||
goto old_good;
|
||||
}
|
||||
rs->sr_text = "unwilling to verify old password";
|
||||
rc = LDAP_UNWILLING_TO_PERFORM;
|
||||
goto error_return;
|
||||
}
|
||||
|
||||
old_good:
|
||||
ml = ch_malloc( sizeof(Modifications) );
|
||||
if ( !qpw->rs_modtail ) qpw->rs_modtail = &ml->sml_next;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user