diff --git a/lib/krb5/get_cred.c b/lib/krb5/get_cred.c index 4594bb92c..052b25083 100644 --- a/lib/krb5/get_cred.c +++ b/lib/krb5/get_cred.c @@ -257,7 +257,9 @@ get_cred_kdc(krb5_context context, krb5_ccache id, krb5_kdc_flags flags, }else if(krb5_rd_error(context, &resp, &error) == 0){ ret = error.error_code; free_KRB_ERROR(&error); - }else + }else if(((char*)resp.data)[0] == 4) + ret = KRB5KRB_AP_ERR_V4_REPLY; + else ret = KRB5KRB_AP_ERR_MSG_TYPE; krb5_data_free(&resp); out: diff --git a/lib/krb5/get_in_tkt.c b/lib/krb5/get_in_tkt.c index 35a48d77e..1a6371186 100644 --- a/lib/krb5/get_in_tkt.c +++ b/lib/krb5/get_in_tkt.c @@ -533,6 +533,8 @@ krb5_get_in_cred(krb5_context context, int ret2; ret2 = krb5_rd_error(context, &resp, &error); + if(ret2 && ((char*)resp.data)[0] == 4) + ret = KRB5KRB_AP_ERR_V4_REPLY; krb5_data_free(&resp); if (ret2 == 0) { /* XXX - send krb-error packet to caller */