From a873e21d7c06f22943a90a41dc733ae76799390d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 13 Feb 2015 09:26:01 +0100 Subject: [PATCH] kdc: base _kdc_fast_mk_error() on krb5_mk_error_ext() Signed-off-by: Stefan Metzmacher --- kdc/fast.c | 44 ++++++++++++++++++++++++-------------------- kdc/kerberos5.c | 4 +++- kdc/krb5tgs.c | 1 + 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/kdc/fast.c b/kdc/fast.c index 1a806d8f4..095929f85 100644 --- a/kdc/fast.c +++ b/kdc/fast.c @@ -244,8 +244,9 @@ _kdc_fast_mk_error(krb5_context context, const KDC_REQ_BODY *req_body, krb5_error_code outer_error, const char *e_text, - krb5_principal error_client, krb5_principal error_server, + const PrincipalName *error_client_name, + const Realm *error_client_realm, time_t *csec, int *cusec, krb5_data *error_msg) { @@ -264,15 +265,16 @@ _kdc_fast_mk_error(krb5_context context, /* first add the KRB-ERROR to the fast errors */ - ret = krb5_mk_error(context, - outer_error, - e_text, - NULL, - error_client, - error_server, - NULL, - NULL, - &e_data); + ret = krb5_mk_error_ext(context, + outer_error, + e_text, + NULL, + error_server, + error_client_name, + error_client_realm, + NULL, + NULL, + &e_data); if (ret) return ret; @@ -285,7 +287,8 @@ _kdc_fast_mk_error(krb5_context context, } if (/* hide_principal */ 0) { - error_client = NULL; + error_client_name = NULL; + error_client_realm = NULL; error_server = NULL; e_text = NULL; } @@ -325,15 +328,16 @@ _kdc_fast_mk_error(krb5_context context, krb5_abortx(context, "internal asn.1 error"); } - ret = krb5_mk_error(context, - outer_error, - e_text, - (e_data.length ? &e_data : NULL), - error_client, - error_server, - csec, - cusec, - error_msg); + ret = krb5_mk_error_ext(context, + outer_error, + e_text, + (e_data.length ? &e_data : NULL), + error_server, + error_client_name, + error_client_realm, + csec, + cusec, + error_msg); krb5_data_free(&e_data); return ret; diff --git a/kdc/kerberos5.c b/kdc/kerberos5.c index b5f41fef6..8125a2eb9 100644 --- a/kdc/kerberos5.c +++ b/kdc/kerberos5.c @@ -2199,7 +2199,9 @@ out: r->armor_crypto, &req->req_body, ret, r->e_text, - r->client_princ, r->server_princ, + r->server_princ, + &r->client_princ->name, + &r->client_princ->realm, NULL, NULL, reply); if (ret) diff --git a/kdc/krb5tgs.c b/kdc/krb5tgs.c index a158502f6..ebab17696 100644 --- a/kdc/krb5tgs.c +++ b/kdc/krb5tgs.c @@ -2457,6 +2457,7 @@ out: NULL, NULL, ret, NULL, + NULL, NULL, NULL, csec, cusec, data); -- 2.11.4.GIT