krb5 commit [krb5-1.9]: Fix no_host_referral concatention in KDC

Tom Yu tlyu at MIT.EDU
Tue Apr 23 17:19:26 EDT 2013


https://github.com/krb5/krb5/commit/9de6c0c7f4b26c04e6b9c31ff5f9c9efa35d28f1
commit 9de6c0c7f4b26c04e6b9c31ff5f9c9efa35d28f1
Author: Greg Hudson <ghudson at mit.edu>
Date:   Fri Jan 11 10:13:25 2013 -0500

    Fix no_host_referral concatention in KDC
    
    If no_host_referral is set in both [kdcdefaults] and the realm
    subsection, we're supposed to concatenate their values.  But the logic
    in handle_referral_params would overwrite the value with the
    non-concatenated realm value.  Similar bugs of this nature were fixed
    in 639c9d0f5a7c68dc98a2a452abc05ca32443cddf (r22037) but this one was
    missed.
    
    (cherry picked from commit 6338d039cbd0b138642e3b123ac58dc802d1d907)
    
    ticket: 7616 (new)
    version_fixed: 1.9.5
    status: resolved

 src/kdc/main.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/kdc/main.c b/src/kdc/main.c
index 57cd226..57251ca 100644
--- a/src/kdc/main.c
+++ b/src/kdc/main.c
@@ -216,12 +216,13 @@ handle_referral_params(krb5_realm_params *rparams,
                 rdp->realm_no_host_referral = strdup(KRB5_CONF_ASTERISK);
                 if (!rdp->realm_no_host_referral)
                     retval = ENOMEM;
-            } else if  (no_refrls && (asprintf(&(rdp->realm_no_host_referral),
-                                               "%s%s%s%s%s", " ", no_refrls," ",
-                                               rparams->realm_no_host_referral, " ") < 0))
-                retval = ENOMEM;
-            else if (asprintf(&(rdp->realm_no_host_referral),"%s%s%s", " ",
-                              rparams->realm_no_host_referral, " ") < 0)
+            } else if (no_refrls) {
+                if (asprintf(&(rdp->realm_no_host_referral),
+                             "%s%s%s%s%s", " ", no_refrls," ",
+                             rparams->realm_no_host_referral, " ") < 0)
+                    retval = ENOMEM;
+            } else if (asprintf(&(rdp->realm_no_host_referral),"%s%s%s", " ",
+                                rparams->realm_no_host_referral, " ") < 0)
                 retval = ENOMEM;
         } else if( no_refrls != NULL) {
             if ( asprintf(&(rdp->realm_no_host_referral),


More information about the cvs-krb5 mailing list