hostname: avoid strcpy() overlap in -d flag handling

We don't need the strcpy() anyways, just use a pointer to the hostname
buffer and move it forward for `hostname -d`.

Sponsored by:	Klara, Inc.

(cherry picked from commit 33c1e7271a)
This commit is contained in:
Kyle Evans 2021-09-25 00:00:31 -05:00
parent 5129b3f90b
commit 6e9b69d219

View File

@ -57,7 +57,7 @@ int
main(int argc, char *argv[])
{
int ch, sflag, dflag;
char *p, hostname[MAXHOSTNAMELEN];
char hostname[MAXHOSTNAMELEN], *hostp, *p;
sflag = 0;
dflag = 0;
@ -90,6 +90,7 @@ main(int argc, char *argv[])
if (sethostname(*argv, (int)strlen(*argv)))
err(1, "sethostname");
} else {
hostp = hostname;
if (gethostname(hostname, (int)sizeof(hostname)))
err(1, "gethostname");
if (sflag) {
@ -99,9 +100,9 @@ main(int argc, char *argv[])
} else if (dflag) {
p = strchr(hostname, '.');
if (p != NULL)
strcpy(hostname, ++p);
hostp = p + 1;
}
(void)printf("%s\n", hostname);
(void)printf("%s\n", hostp);
}
exit(0);
}