krb5 commit: Fix no_host_referral concatention in KDC

Greg Hudson ghudson at MIT.EDU
Fri Jan 11 12:35:09 EST 2013


https://github.com/krb5/krb5/commit/6338d039cbd0b138642e3b123ac58dc802d1d907
commit 6338d039cbd0b138642e3b123ac58dc802d1d907
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.
    
    ticket: 7539 (new)
    target_version: 1.11.1
    tags: pullup

 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 02d7c33..51792fb 100644
--- a/src/kdc/main.c
+++ b/src/kdc/main.c
@@ -189,12 +189,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