bsdaemon@comcast.net wrote:
That means the code to set the thread key didn't execute. You should trace smbk5pwd_op_bind to find out why it didn't.I posted about this before. Now, I've tracked down the location of the problem, but don't know enough about OpenLDAP to determine the cause.
I'm using 2.2.15 (SuSE package). smbk5pwd is from HEAD a few days ago.
When the {K5KEY} attribute is checked, it returns from k5key_chk at the statement:
if ( ldap_pvt_thread_pool_getkey( ctx, smbk5pwd_op_cleanup, (void ** >>>)&op, NULL ) ||
!op )
return LUTIL_PASSWD_ERR;
That implies that the operation structure is corrupted. Most likely the slap.h you compiled against doesn't match the version of the running slapd.When a password change operation is called, it returns from smbk5pwd_exop_passwd.
With the modification:
/* Not the operation we expected, pass it on... */
if ( ber_bvcmp( &slap_EXOP_MODIFY_PASSWD, &op->ore_reqoid ) ) {
Debug(LDAP_DEBUG_ANY,
"\tWant: %s, got: %s"
,(&slap_EXOP_MODIFY_PASSWD)->bv_val,(&op->ore_reqoid)- >>>>bv_val,0); return SLAP_CB_CONTINUE;
}
I get: Want: 1.3.6.1.4.1.4203.1.11.1, got: <DN>
where <DN> is the dn of the password to change.
-- -- Howard Chu Chief Architect, Symas Corp. Director, Highland Sun http://www.symas.com http://highlandsun.com/hyc Symas: Premier OpenSource Development and Support