aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2021-09-25 05:00:31 +0000
committerKyle Evans <kevans@FreeBSD.org>2021-09-25 05:03:50 +0000
commit33c1e7271ac21a626829289780b88071ae46ec65 (patch)
treefefbfa80196db351b5ddbcc28ce5ac679e8efeb3
parent43880c511cef68098a9ca5a797f28e2c4d29cfad (diff)
downloadsrc-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.c7
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);
}