From b5c158d9f7eba8868775c24b20e4f6d13c2303b9 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Thu, 5 Dec 2019 17:22:47 -0600 Subject: [PATCH] Fix tests/can and tests/kdc krb5_kdc_process_request() must return 0 when it produces a reply, and only return non-zero when it could not construct any kind of reply (e.g., ENOMEM, or -1 if no handler claimed responsibility for the request). --- kdc/kerberos5.c | 23 +++++++++++------------ tests/can/krb5.conf.in | 1 + 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/kdc/kerberos5.c b/kdc/kerberos5.c index 3fe80367d..05fd9c33f 100644 --- a/kdc/kerberos5.c +++ b/kdc/kerberos5.c @@ -2395,18 +2395,17 @@ out: * In case of a non proxy error, build an error message. */ if (ret != 0 && ret != HDB_ERR_NOT_FOUND_HERE && r->reply->length == 0) - /* We don't want to clobber the original error here... */ - _kdc_fast_mk_error(r, &error_method, - r->armor_crypto, - &req->req_body, - ret, r->e_text, - r->server_princ, - r->client_princ ? - &r->client_princ->name : NULL, - r->client_princ ? - &r->client_princ->realm : NULL, - NULL, NULL, - r->reply); + ret = _kdc_fast_mk_error(r, &error_method, + r->armor_crypto, + &req->req_body, + ret, r->e_text, + r->server_princ, + r->client_princ ? + &r->client_princ->name : NULL, + r->client_princ ? + &r->client_princ->realm : NULL, + NULL, NULL, + r->reply); free_EncTicketPart(&r->et); free_EncKDCRepPart(&r->ek); diff --git a/tests/can/krb5.conf.in b/tests/can/krb5.conf.in index 8cf1ca57c..275f95667 100644 --- a/tests/can/krb5.conf.in +++ b/tests/can/krb5.conf.in @@ -25,4 +25,5 @@ [logging] kdc = 0-/FILE:@objdir@/messages.log + kdc-replay = 0-/FILE:@objdir@/messages.log default = 0-/FILE:@objdir@/messages.log