summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2015-02-13 09:26:01 +0100
committerAndrew Bartlett <abartlet@samba.org>2015-07-31 17:30:23 +1200
commita873e21d7c06f22943a90a41dc733ae76799390d (patch)
tree29b7c4270b793b088927243724af4c597da6d072
parent25f3db919fa73f0ad4caa31dff2275da6730f266 (diff)
kdc: base _kdc_fast_mk_error() on krb5_mk_error_ext()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
-rw-r--r--kdc/fast.c44
-rw-r--r--kdc/kerberos5.c4
-rw-r--r--kdc/krb5tgs.c1
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);