summaryrefslogtreecommitdiffstats
path: root/lib/libutil
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2005-10-05 04:42:20 +0000
committerbrooks <brooks@FreeBSD.org>2005-10-05 04:42:20 +0000
commit87f2281f65b33289da6aa7940be68ec13c31dde0 (patch)
treebf5ab786c2786f9f67d2d43317789dc0255a8fda /lib/libutil
parent4c39c2be2fe6778a72a02fdbdbaea9a2c50c6ac9 (diff)
downloadFreeBSD-src-87f2281f65b33289da6aa7940be68ec13c31dde0.zip
FreeBSD-src-87f2281f65b33289da6aa7940be68ec13c31dde0.tar.gz
When removing the local domain, only do so when the result will be a
host name. This is matches the documented behaviro. The previous behavior would remove the domain name even if the result retained a dot. This fixes rsh connections from a.example.com to example.com. Reviewed by: ceri (at least the concept)
Diffstat (limited to 'lib/libutil')
-rw-r--r--lib/libutil/trimdomain.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/libutil/trimdomain.c b/lib/libutil/trimdomain.c
index a7ce8c4..85c27e0 100644
--- a/lib/libutil/trimdomain.c
+++ b/lib/libutil/trimdomain.c
@@ -75,18 +75,16 @@ trimdomain(char *fullhost, int hostsize)
s = fullhost;
end = s + hostsize + 1;
- for (; (s = memchr(s, '.', (size_t)(end - s))) != NULL; s++) {
+ if ((s = memchr(s, '.', (size_t)(end - s))) != NULL) {
if (strncasecmp(s + 1, domain, dlen) == 0) {
if (s[dlen + 1] == '\0') {
/* Found -- lose the domain. */
*s = '\0';
- break;
} else if (s[dlen + 1] == ':' &&
isDISP(s + dlen + 2) &&
(len = strlen(s + dlen + 1)) < (size_t)(end - s)) {
/* Found -- shuffle the DISPLAY back. */
memmove(s, s + dlen + 1, len + 1);
- break;
}
}
}
OpenPOWER on IntegriCloud