--- gssd_proc.c.orig 2006-02-24 12:33:45.000000000 -0500 +++ gssd_proc.c 2006-02-28 17:23:37.000000000 -0500 @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -115,6 +116,7 @@ read_service_info(char *info_file_name, int fd = -1; struct hostent *ent = NULL; int numfields; + char *s; *servicename = *servername = *protocol = NULL; @@ -155,6 +157,12 @@ read_service_info(char *info_file_name, printerr(0, "ERROR: can't resolve server %s name\n", address); goto fail; } + + /* don't allow mixed-case names to rain on our parade */ + for (s = ent->h_name; s && *s; s++) { + *s = tolower((int)*s); + } + if (!(*servername = calloc(strlen(ent->h_name) + 1, 1))) goto fail; memcpy(*servername, ent->h_name, strlen(ent->h_name));