Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Oct 2008 11:58:26 +0000 (UTC)
From:      Dag-Erling Smorgrav <des@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r184122 - head/crypto/openssh
Message-ID:  <200810211158.m9LBwRFq098420@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: des
Date: Tue Oct 21 11:58:26 2008
New Revision: 184122
URL: http://svn.freebsd.org/changeset/base/184122

Log:
  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

Modified:
  head/crypto/openssh/loginrec.c
  head/crypto/openssh/sshd.c

Modified: head/crypto/openssh/loginrec.c
==============================================================================
--- head/crypto/openssh/loginrec.c	Tue Oct 21 10:54:12 2008	(r184121)
+++ head/crypto/openssh/loginrec.c	Tue Oct 21 11:58:26 2008	(r184122)
@@ -146,7 +146,6 @@
  */
 
 #include "includes.h"
-__RCSID("$FreeBSD$");
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -689,8 +688,8 @@ construct_utmp(struct logininfo *li,
 	strncpy(ut->ut_name, li->username,
 	    MIN_SIZEOF(ut->ut_name, li->username));
 # ifdef HAVE_HOST_IN_UTMP
-	realhostname_sa(ut->ut_host, sizeof ut->ut_host,
-	    &li->hostaddr.sa, li->hostaddr.sa.sa_len);
+	strncpy(ut->ut_host, li->hostname,
+	    MIN_SIZEOF(ut->ut_host, li->hostname));
 # endif
 # ifdef HAVE_ADDR_IN_UTMP
 	/* this is just a 32-bit IP address */

Modified: head/crypto/openssh/sshd.c
==============================================================================
--- head/crypto/openssh/sshd.c	Tue Oct 21 10:54:12 2008	(r184121)
+++ head/crypto/openssh/sshd.c	Tue Oct 21 11:58:26 2008	(r184122)
@@ -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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810211158.m9LBwRFq098420>