summaryrefslogtreecommitdiff
path: root/lib/libutil
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2000-07-14 18:08:19 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2000-07-14 18:08:19 +0000
commit6484396e9923f5e2aec49b4ba32ebce7ec2eff40 (patch)
treef85fce2d49f0c7a9c7300aa0710c3e734454f289 /lib/libutil
parentd9a9b8dbb667dc660b06b195745f1d67318df534 (diff)
Notes
Diffstat (limited to 'lib/libutil')
-rw-r--r--lib/libutil/realhostname.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/libutil/realhostname.c b/lib/libutil/realhostname.c
index a0febb81c391..a6f10d689300 100644
--- a/lib/libutil/realhostname.c
+++ b/lib/libutil/realhostname.c
@@ -131,13 +131,20 @@ realhostname_sa(char *host, size_t hsize, struct sockaddr *addr, int addrlen)
freeaddrinfo(ores);
goto numeric;
}
- if (strlen(ores->ai_canonname) > hsize &&
- addr->sa_family == AF_INET) {
- freeaddrinfo(ores);
- goto numeric;
- }
- strncpy(host, ores->ai_canonname,
- hsize);
+ if (strlen(ores->ai_canonname) > hsize) {
+ if (addr->sa_family == AF_INET) {
+ freeaddrinfo(ores);
+ goto numeric;
+ }
+ strncpy(buf,
+ ores->ai_canonname,
+ sizeof(buf));
+ trimdomain(buf, hsize);
+ strncpy(host, buf, hsize);
+ } else
+ strncpy(host,
+ ores->ai_canonname,
+ hsize);
break;
}
((struct sockinet *)addr)->si_port = port;