+Fri Feb 3 16:41:19 1995 Mark Eichin (eichin@cygnus.com)
+
+ * get_in_tkt.c (krb5_get_in_tkt): also check for the version
+ number of the reply being whatever we had in the first byte of the
+ request.
+
Fri Feb 3 08:07:55 1995 Theodore Y. Ts'o (tytso@dcl)
* compat_recv.c (krb_v4_recvauth): Use explicit 32 bit types so
krb5_enctype etypes[1];
krb5_timestamp time_now;
krb5_pa_data *padata;
+ char k4_version; /* same type as *(krb5_data::data) */
if (! krb5_realm_compare(context, creds->client, creds->server))
return KRB5_IN_TKT_REALM_MISMATCH;
if (retval = encode_krb5_as_req(&request, &packet))
goto cleanup;
+ k4_version = packet->data[0];
retval = krb5_sendto_kdc(context, packet,
krb5_princ_realm(context, creds->client), &reply);
krb5_free_data(context, packet);
t_switch = reply.data[1];
t_switch &= ~1;
- if (reply.data[0] == V4_KRB_PROT_VERSION
- && t_switch == V4_AUTH_MSG_ERR_REPLY) {
+ if (t_switch == V4_AUTH_MSG_ERR_REPLY
+ && (reply.data[0] == V4_KRB_PROT_VERSION
+ || reply.data[0] == k4_version)) {
retval = KRB5KRB_AP_ERR_V4_REPLY;
} else {
retval = KRB5KRB_AP_ERR_MSG_TYPE;