krb5_dbe_lookup_mkvno assumes an mkvno of 1 for entries with no explicit tl_data. We've seen at least one pre-1.7 KDB with a master kvno of 0, violating this assumption. Fix this as follows: * krb5_dbe_lookup_mkvno outputs 0 instead of 1 if no tl_data exists. * A new function krb5_dbe_get_mkvno translates this 0 value to the minimum version number in the mkey_list. (krb5_dbe_lookup_mkvno cannot do this as it doesn't take the mkey_list as a parameter.) * Call sites to krb5_dbe_lookup_mkvno are converted to krb5_dbe_get_mkvno, except for an LDAP case where it is acceptable to store 0 if the mkvno is unknown. https://github.com/krb5/krb5/commit/f0e084261aec6be2d508b33f960d38d19f0d0345 Commit By: ghudson Revision: 23676 Changed Files: U trunk/src/include/kdb.h U trunk/src/kadmin/dbutil/kdb5_mkey.c U trunk/src/lib/kadm5/srv/svr_principal.c U trunk/src/lib/kdb/kdb5.c U trunk/src/lib/kdb/libkdb5.exports