diff options
author | Kyle Evans <kevans@FreeBSD.org> | 2021-09-25 05:00:31 +0000 |
---|---|---|
committer | Kyle Evans <kevans@FreeBSD.org> | 2021-09-25 05:03:50 +0000 |
commit | 33c1e7271ac21a626829289780b88071ae46ec65 (patch) | |
tree | fefbfa80196db351b5ddbcc28ce5ac679e8efeb3 | |
parent | 43880c511cef68098a9ca5a797f28e2c4d29cfad (diff) | |
download | src-33c1e7271ac21a626829289780b88071ae46ec65.tar.gz src-33c1e7271ac21a626829289780b88071ae46ec65.zip |
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.
-rw-r--r-- | bin/hostname/hostname.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bin/hostname/hostname.c b/bin/hostname/hostname.c index d5cc6b1cfff2..3dbafa9d3566 100644 --- a/bin/hostname/hostname.c +++ b/bin/hostname/hostname.c @@ -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); } |