[29177] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

krb5 commit [krb5-1.12]: Fix KDC client referrals

daemon@ATHENA.MIT.EDU (Tom Yu)
Wed Dec 9 17:58:17 2015

Date: Wed, 9 Dec 2015 17:58:12 -0500
From: Tom Yu <tlyu@mit.edu>
Message-Id: <201512092258.tB9MwCbq019294@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

https://github.com/krb5/krb5/commit/437fbad4bfb7176d304eed7cdc4b877afa6d9a7d
commit 437fbad4bfb7176d304eed7cdc4b877afa6d9a7d
Author: Greg Hudson <ghudson@mit.edu>
Date:   Thu Sep 3 12:38:44 2015 -0400

    Fix KDC client referrals
    
    Although our built-in KDB modules do not support client referrals for
    AS requests, the KDC is supposed to return one if a third-party module
    returns a DB entry containing a principal in a foreign realm.
    Unfortunately, this code has never worked; in prepare_error_as(), we
    erroneously compare the protocol code errcode against the com_err code
    KRB5KDC_ERR_WRONG_REALM; as a result, we never supply the canonical
    client principal.  Fix this by comparing errcode against the protocol
    code KDC_ERR_WRONG_REALM instead.
    
    Discovered by Alexander Bokovoy and Simo Sorce.
    
    (cherry picked from commit 4e036ef4127a9b09d1a567472da1df24c55cdb89)
    
    ticket: 8312 (new)
    version_fixed: 1.12.5
    status: resolved

 src/kdc/do_as_req.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/kdc/do_as_req.c b/src/kdc/do_as_req.c
index 95c3e23..fa54c5d 100644
--- a/src/kdc/do_as_req.c
+++ b/src/kdc/do_as_req.c
@@ -805,7 +805,7 @@ prepare_error_as (struct kdc_request_state *rstate, krb5_kdc_req *request,
         return retval;
     errpkt.error = error;
     errpkt.server = request->server;
-    errpkt.client = (error == KRB5KDC_ERR_WRONG_REALM) ? canon_client :
+    errpkt.client = (error == KDC_ERR_WRONG_REALM) ? canon_client :
         request->client;
     errpkt.text = string2data((char *)status);
 
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post