diff options
author | des <des@FreeBSD.org> | 2008-10-21 11:58:26 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2008-10-21 11:58:26 +0000 |
commit | a9989b9d40bcea1318f2c3feff53b2025a0e2aae (patch) | |
tree | b4bffbaae319cbf5567103987815c64ab9c0efa7 /crypto/openssh/sshd.c | |
parent | cc3d7dc928c727465328dba12b1c695b4f1cef1d (diff) | |
download | FreeBSD-src-a9989b9d40bcea1318f2c3feff53b2025a0e2aae.zip FreeBSD-src-a9989b9d40bcea1318f2c3feff53b2025a0e2aae.tar.gz |
At some point, construct_utmp() was changed to use realhostname() to fill
in the struct utmp due to concerns about the length of the hostname buffer.
However, this breaks the UseDNS option. There is a simpler and better
solution: initialize utmp_len to the correct value (UT_HOSTSIZE instead of
MAXHOSTNAMELEN) and let get_remote_name_or_ip() worry about the size of the
buffer.
PR: bin/97499
Submitted by: Bruce Cran <bruce@cran.org.uk>
MFC after: 1 week
Diffstat (limited to 'crypto/openssh/sshd.c')
-rw-r--r-- | crypto/openssh/sshd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/openssh/sshd.c b/crypto/openssh/sshd.c index 901615d..7ecad75 100644 --- a/crypto/openssh/sshd.c +++ b/crypto/openssh/sshd.c @@ -72,6 +72,7 @@ __RCSID("$FreeBSD$"); #include <stdlib.h> #include <string.h> #include <unistd.h> +#include <utmp.h> #include <openssl/dh.h> #include <openssl/bn.h> @@ -238,7 +239,7 @@ u_char *session_id2 = NULL; u_int session_id2_len = 0; /* record remote hostname or ip */ -u_int utmp_len = MAXHOSTNAMELEN; +u_int utmp_len = UT_HOSTSIZE; /* options.max_startup sized array of fd ints */ int *startup_pipes = NULL; |