diff options
author | brian <brian@FreeBSD.org> | 1999-04-07 08:39:54 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 1999-04-07 08:39:54 +0000 |
commit | 68437b1a0e8b58742a74cd819278c2cd5f520bb3 (patch) | |
tree | a913122eaac8a04ca6bbe4e4ea7194d89ccad73b /libexec | |
parent | c6c6c7de65eae103002ebb9bee8881e1e2e903df (diff) | |
download | FreeBSD-src-68437b1a0e8b58742a74cd819278c2cd5f520bb3.zip FreeBSD-src-68437b1a0e8b58742a74cd819278c2cd5f520bb3.tar.gz |
Really fix -u....
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/telnetd/telnetd.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libexec/telnetd/telnetd.c b/libexec/telnetd/telnetd.c index fd4b6da..d8019ed 100644 --- a/libexec/telnetd/telnetd.c +++ b/libexec/telnetd/telnetd.c @@ -817,11 +817,15 @@ doit(who) #endif /* _SC_CRAY_SECURE_SYS */ /* get name of connected client */ - if (realhostname(remote_hostname, utmp_len, + if (realhostname(remote_hostname, sizeof(remote_hostname) - 1, &who->sin_addr) == HOSTNAME_INVALIDADDR && registerd_host_only) fatal(net, "Couldn't resolve your address into a host name.\r\n\ Please contact your net administrator"); - remote_hostname[utmp_len] = '\0'; + remote_hostname[sizeof(remote_hostname) - 1] = '\0'; + + if (!isdigit(remote_hostname[0]) && strlen(remote_hostname) > utmp_len) + strncpy(remote_hostname, inet_ntoa(who->sin_addr), + sizeof(remote_hostname) - 1); (void) gethostname(host_name, sizeof(host_name) - 1); host_name[sizeof(host_name) - 1] = '\0'; |