Key *tkey;
krb5_keyblock *subkey = NULL;
unsigned usage;
+ krb5uint32 kvno = 0;
+ krb5uint32 *kvno_ptr = NULL;
*auth_data = NULL;
*csec = NULL;
ap_req.ticket.sname,
ap_req.ticket.realm);
- ret = _kdc_db_fetch(context, config, princ, HDB_F_GET_KRBTGT, ap_req.ticket.enc_part.kvno, NULL, krbtgt);
+ if (ap_req.ticket.enc_part.kvno) {
+ kvno = *ap_req.ticket.enc_part.kvno;
+ kvno_ptr = &kvno;
+ }
+ ret = _kdc_db_fetch(context, config, princ, HDB_F_GET_KRBTGT, kvno_ptr,
+ NULL, krbtgt);
if(ret == HDB_ERR_NOT_FOUND_HERE) {
char *p;
hdb_entry_ex *uu;
krb5_principal p;
Key *uukey;
+ krb5uint32 second_kvno = 0;
+ krb5uint32 *kvno_ptr = NULL;
if(b->additional_tickets == NULL ||
b->additional_tickets->len == 0){
goto out;
}
_krb5_principalname2krb5_principal(context, &p, t->sname, t->realm);
+ if(t->enc_part.kvno){
+ second_kvno = *t->enc_part.kvno;
+ kvno_ptr = &second_kvno;
+ }
ret = _kdc_db_fetch(context, config, p,
- HDB_F_GET_KRBTGT, t->enc_part.kvno,
+ HDB_F_GET_KRBTGT, kvno_ptr,
NULL, &uu);
krb5_free_principal(context, p);
if(ret){