From 142e6b9909d10e51d430bb9f59063611a002490b Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Mon, 13 Apr 2009 20:26:24 +0000 Subject: [PATCH] fix memory management in handle_referral_params pull up r22037 from trunk Fix in handle_referral_params ticket: 6456 version_fixed: 1.7 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-7@22203 dc483132-0cff-0310-8789-dd5450dbe970 --- src/kdc/main.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/kdc/main.c b/src/kdc/main.c index 5c5ea9663..d82aa443a 100644 --- a/src/kdc/main.c +++ b/src/kdc/main.c @@ -175,7 +175,6 @@ handle_referral_params(krb5_realm_params *rparams, kdc_realm_t *rdp ) { krb5_error_code retval = 0; - if (no_refrls && krb5_match_config_pattern(no_refrls, KRB5_CONF_ASTERISK) == TRUE) { rdp->realm_no_host_referral = strdup(KRB5_CONF_ASTERISK); if (!rdp->realm_no_host_referral) @@ -192,9 +191,10 @@ handle_referral_params(krb5_realm_params *rparams, else if (asprintf(&(rdp->realm_no_host_referral),"%s%s%s", " ", rparams->realm_no_host_referral, " ") < 0) retval = ENOMEM; - } else if( no_refrls != NULL && asprintf(&(rdp->realm_no_host_referral),"%s%s%s", " ", no_refrls, " ") < 0) - retval = ENOMEM; - else + } else if( no_refrls != NULL) { + if ( asprintf(&(rdp->realm_no_host_referral),"%s%s%s", " ", no_refrls, " ") < 0) + retval = ENOMEM; + } else rdp->realm_no_host_referral = NULL; } @@ -213,16 +213,17 @@ handle_referral_params(krb5_realm_params *rparams, rdp->realm_host_based_services = strdup(KRB5_CONF_ASTERISK); if (!rdp->realm_host_based_services) retval = ENOMEM; - } else if (host_based_srvcs && asprintf(&(rdp->realm_host_based_services), "%s%s%s%s%s", + } else if (host_based_srvcs) { + if (asprintf(&(rdp->realm_host_based_services), "%s%s%s%s%s", " ", host_based_srvcs," ",rparams->realm_host_based_services, " ") < 0) retval = ENOMEM; - else if (asprintf(&(rdp->realm_host_based_services),"%s%s%s", " ", + } else if (asprintf(&(rdp->realm_host_based_services),"%s%s%s", " ", rparams->realm_host_based_services, " ") < 0) retval = ENOMEM; - } else if(host_based_srvcs != NULL && asprintf(&(rdp->realm_host_based_services),"%s%s%s", - " ", host_based_srvcs, " ") < 0) + } else if (host_based_srvcs) { + if (asprintf(&(rdp->realm_host_based_services),"%s%s%s", " ", host_based_srvcs, " ") < 0) retval = ENOMEM; - else + } else rdp->realm_host_based_services = NULL; } -- 2.26.2