From 72bd741cfc073c745bc3b9faf041d0578dfd6050 Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Wed, 5 Oct 2005 04:42:20 +0000 Subject: [PATCH] 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) --- lib/libutil/trimdomain.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/libutil/trimdomain.c b/lib/libutil/trimdomain.c index a7ce8c4eaea3..85c27e0a1c10 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; } } }