diff -up cups-1.3.10/scheduler/conf.c~ cups-1.3.10/scheduler/conf.c --- cups-1.3.10/scheduler/conf.c~ 2009-04-24 15:14:04.000000000 +0100 +++ cups-1.3.10/scheduler/conf.c 2009-04-24 16:35:32.000000000 +0100 @@ -689,38 +689,44 @@ cupsdReadConfiguration(void) } cupsdSetString(&ServerName, temp); - add_alias(temp); + } - if (HostNameLookups || RemoteAccessEnabled) - { - struct hostent *host; /* Host entry to get FQDN */ - if ((host = gethostbyname(temp)) != NULL) + add_alias(ServerName); + + if (HostNameLookups || RemoteAccessEnabled) + { + struct hostent *host; /* Host entry to get FQDN */ + + if ((host = gethostbyname(ServerName)) != NULL) + { + if (strcasecmp(ServerName, host->h_name)) { - if (strcasecmp(temp, host->h_name)) - { - cupsdSetString(&ServerName, host->h_name); - add_alias(host->h_name); - } + cupsdSetString(&ServerName, host->h_name); + add_alias(host->h_name); + } - if (host->h_aliases) - { - for (i = 0; host->h_aliases[i]; i ++) - if (strcasecmp(temp, host->h_aliases[i])) - add_alias(host->h_aliases[i]); - } + if (host->h_aliases) + { + for (i = 0; host->h_aliases[i]; i ++) + if (strcasecmp(ServerName, host->h_aliases[i])) + add_alias(host->h_aliases[i]); } } + } - /* - * Make sure we have the base hostname added as an alias, too! - */ + /* + * Make sure we have the base hostname added as an alias, too! + */ - if ((slash = strchr(temp, '.')) != NULL) - { - *slash = '\0'; - add_alias(temp); - } + if ((slash = strchr(ServerName, '.')) != NULL) + { + size_t n = slash - ServerName; + if (n > sizeof(temp) - 1) + n = sizeof(temp) - 1; + memcpy (temp, ServerName, n); + temp[n] = '\0'; + add_alias(temp); } for (slash = ServerName; isdigit(*slash & 255) || *slash == '.'; slash ++);