svn rev #21630: branches/mskrb-integ/src/kdc/

lhoward@MIT.EDU lhoward at MIT.EDU
Mon Dec 29 09:49:05 EST 2008


http://src.mit.edu/fisheye/changelog/krb5/?cs=21630
Commit By: lhoward
Log Message:
cleanup


Changed Files:
U   branches/mskrb-integ/src/kdc/do_tgs_req.c
Modified: branches/mskrb-integ/src/kdc/do_tgs_req.c
===================================================================
--- branches/mskrb-integ/src/kdc/do_tgs_req.c	2008-12-29 14:40:52 UTC (rev 21629)
+++ branches/mskrb-integ/src/kdc/do_tgs_req.c	2008-12-29 14:49:04 UTC (rev 21630)
@@ -121,7 +121,7 @@
     krb5_authdata **kdc_issued_auth_data = NULL;    /* auth data issued by KDC */
     unsigned int c_flags = 0, s_flags = 0;	    /* client/server KDB flags */
     char *s4u_name = NULL;
-    krb5_boolean is_referral;
+    krb5_boolean is_referral = FALSE;
 
     session_key.contents = NULL;
     
@@ -256,8 +256,11 @@
     if (!is_local_principal(header_enc_tkt->client))
 	setflag(c_flags, KRB5_KDB_FLAG_CROSS_REALM);
 
-    is_referral = krb5_is_tgs_principal(server.princ) &&
-	!krb5_principal_compare(kdc_context, tgs_server, server.princ);
+    if (krb5_is_tgs_principal(server.princ) &&
+	!krb5_principal_compare(kdc_context, tgs_server, server.princ)) {
+	assert(!isflagset(server.attributes, KRB5_KDB_PWCHANGE_SERVICE));
+	is_referral = TRUE;
+    }
 
     /* Check for protocol transition */
     errcode = kdc_process_s4u2self_req(kdc_context, request, header_enc_tkt->client,
@@ -643,7 +646,7 @@
 	goto cleanup;
     }
 
-    if (isflagset(s_flags, KRB5_KDB_FLAG_CANONICALIZE)) {
+    if (is_referral && isflagset(s_flags, KRB5_KDB_FLAG_CANONICALIZE)) {
 	errcode = return_svr_referral_data(kdc_context,
 					   &server, &reply_encpart);
 	if (errcode) {




More information about the cvs-krb5 mailing list