From 92ee9e46425880f8d3131a66c282cd6246b7cf69 Mon Sep 17 00:00:00 2001 From: Frank Lahm Date: Wed, 29 Feb 2012 11:11:56 +0100 Subject: [PATCH 1/1] Use GSS_C_NO_NAME as server principal when Kerberos options -fqdn and -krb5service are not set, from Jamie Gilbertson --- NEWS | 2 ++ etc/uams/uams_gss.c | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 22b496f7..f427f4d7 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,8 @@ Changes in 2.2.3 * UPD: based on Unicode 6.1.0 * UPD: experimental systemd service files: always run both afpd and cnid_metad * UPD: afpd: Ensure our umask is not altered by eg pam_umask +* UPD: afpd: Use GSS_C_NO_NAME as server principal when Kerberos options -fqdn + and -krb5service are not set, from Jamie Gilbertson * FIX: afpd: sendfile() on FreeBSD was broken, courtesy of Denis Ahrens * FIX: afpd: Dont use searchdb when doing partial name search diff --git a/etc/uams/uams_gss.c b/etc/uams/uams_gss.c index 044dd278..5f7b20a0 100644 --- a/etc/uams/uams_gss.c +++ b/etc/uams/uams_gss.c @@ -146,7 +146,7 @@ static int get_afpd_principal(void *obj, gss_name_t *server_name) size_t principal_length; gss_buffer_desc s_princ_buffer; - /* get all the required information from afpd */ + /* get information from afpd */ if (uam_afpserver_option(obj, UAM_OPTION_FQDN, (void*) &fqdn, &fqdnlen) < 0) return 1; LOG(log_debug, logtype_uams, "get_afpd_principal: fqdn: %s", fqdn); @@ -155,11 +155,13 @@ static int get_afpd_principal(void *obj, gss_name_t *server_name) return 1; LOG(log_debug, logtype_uams, "get_afpd_principal: service: %s", service); - /* we need all the info, log error and return if one's missing */ + /* if we don't have all the info, log that and return GSS_C_NO_NAME */ if (!service || !servicelen || !fqdn || !fqdnlen) { - LOG(log_error, logtype_uams, - "get_afpd_principal: could not retrieve required information from afpd."); - return 1; + LOG(log_note, logtype_uams, + "get_afpd_principal: could not retrieve information from afpd, using default service principal(s)"); + + *server_name = GSS_C_NO_NAME; + return 0; } /* allocate memory to hold the temporary principal string */ -- 2.39.2