sshd doesn't log hostname into utmp correctly [resend]

Kevin Steves kevin at
Tue Aug 20 23:49:22 EST 2002

On Tue, Aug 20, 2002 at 02:49:43PM +0900, Hajimu UMEMOTO wrote:
> >>>>> On Mon, 19 Aug 2002 14:19:02 -0700
> >>>>> Kevin Steves <kevin at> said:
> kevin> thanks.  which utmp field is effected?  in loginrec.c i see ut_addr
> kevin> being set from sockaddr, but for AF_INET only.  and ut_host is set
> kevin> from the login_alloc_entry() hostname argument it seems.
> record_login() copies addr by calling login_set_addr() but just
> sizeof(struct sockaddr).  Since sizeof(struct sockaddr) is equal to
> sizeof(struct sockaddr_in), IPv4 is not affected.  However,
> sizeof(struct sockaddr) is too short against sizeof(struct
> sockaddr_in6).  This breaks IPv6 address.

i understand the issue, but i don't see how current utmp recording
results are changed.  i am looking at this code.

	strncpy(ut->ut_host, li->hostname, MIN_SIZEOF(ut->ut_host, li->hostname));
# endif
	/* this is just a 32-bit IP address */
	if (li-> == AF_INET)
		ut->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr;
# endif

More information about the openssh-unix-dev mailing list