diff --git a/sbin/route/route.c b/sbin/route/route.c --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -578,15 +578,18 @@ routename(struct sockaddr *sa) { struct sockaddr_dl *sdl; - const char *cp; int n; if (!domain_initialized) { + const char *domain_part; + domain_initialized = true; - if (gethostname(domain, MAXHOSTNAMELEN) == 0 && - (cp = strchr(domain, '.'))) { - domain[MAXHOSTNAMELEN] = '\0'; - (void)strcpy(domain, cp + 1); + if (gethostname(domain, sizeof(domain) - 1) == 0 && + (domain_part = strchr(domain, '.')) != NULL) { + domain[sizeof(domain) - 1] = '\0'; + domain_part++; + (void)memmove(domain, domain_part, + strlen(domain_part) + 1 /* NUL */); } else domain[0] = '\0'; }