29 lines
1.3 KiB
Diff
29 lines
1.3 KiB
Diff
|
Rob Crittenden noticed that, in populate_krb5_db_entry(), key
|
||
|
expirations weren't being computed as expected. It turns out
|
||
|
that neither KDB_PRINC_EXPIRE_TIME_ATTR nor KDB_PWD_EXPIRE_TIME_ATTR
|
||
|
is defined to 1, so the check for their bits could never succeed as
|
||
|
written. RT#6762.
|
||
|
|
||
|
Index: src/plugins/kdb/ldap/libkdb_ldap/ldap_misc.c
|
||
|
===================================================================
|
||
|
--- src/plugins/kdb/ldap/libkdb_ldap/ldap_misc.c (revision 24252)
|
||
|
+++ src/plugins/kdb/ldap/libkdb_ldap/ldap_misc.c (working copy)
|
||
|
@@ -2087,7 +2087,7 @@
|
||
|
goto cleanup;
|
||
|
|
||
|
if (attr_present == TRUE) {
|
||
|
- if ((mask & KDB_PRINC_EXPIRE_TIME_ATTR) == 1) {
|
||
|
+ if (mask & KDB_PRINC_EXPIRE_TIME_ATTR) {
|
||
|
if (expiretime < entry->expiration)
|
||
|
entry->expiration = expiretime;
|
||
|
} else {
|
||
|
@@ -2127,7 +2127,7 @@
|
||
|
if ((st=krb5_dbe_lookup_last_pwd_change(context, entry, &last_pw_changed)) != 0)
|
||
|
goto cleanup;
|
||
|
|
||
|
- if ((mask & KDB_PWD_EXPIRE_TIME_ATTR) == 1) {
|
||
|
+ if (mask & KDB_PWD_EXPIRE_TIME_ATTR) {
|
||
|
if ((last_pw_changed + pw_max_life) < entry->pw_expiration)
|
||
|
entry->pw_expiration = last_pw_changed + pw_max_life;
|
||
|
} else
|