svn commit: r285750 - stable/10/crypto/openssh

Eric van Gyzen vangyzen at FreeBSD.org
Tue Jul 21 14:36:35 UTC 2015


Author: vangyzen
Date: Tue Jul 21 14:36:33 2015
New Revision: 285750
URL: https://svnweb.freebsd.org/changeset/base/285750

Log:
  MFC r285642
  
  ssh: canonicize the host name before looking it up in the host file
  
  Re-apply r99054 by des in 2002. This was accidentally dropped
  by the update to OpenSSH 6.5p1 (r261320).
  
  This change is actually taken from r387082 of
  ports/security/openssh-portable/files/patch-ssh.c
  
  Differential Revision: https://reviews.freebsd.org/D3103
  PR:		198043
  Approved by:	re (gjb), kib (mentor)
  Sponsored by:	Dell Inc.
  Relnotes:	yes

Modified:
  stable/10/crypto/openssh/ssh.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/crypto/openssh/ssh.c
==============================================================================
--- stable/10/crypto/openssh/ssh.c	Tue Jul 21 14:27:36 2015	(r285749)
+++ stable/10/crypto/openssh/ssh.c	Tue Jul 21 14:36:33 2015	(r285750)
@@ -1001,6 +1001,23 @@ main(int ac, char **av)
 	shorthost[strcspn(thishost, ".")] = '\0';
 	snprintf(portstr, sizeof(portstr), "%d", options.port);
 
+	/* Find canonic host name. */
+	if (strchr(host, '.') == 0) {
+		struct addrinfo hints;
+		struct addrinfo *ai = NULL;
+		int errgai;
+		memset(&hints, 0, sizeof(hints));
+		hints.ai_family = options.address_family;
+		hints.ai_flags = AI_CANONNAME;
+		hints.ai_socktype = SOCK_STREAM;
+		errgai = getaddrinfo(host, NULL, &hints, &ai);
+		if (errgai == 0) {
+			if (ai->ai_canonname != NULL)
+				host = xstrdup(ai->ai_canonname);
+			freeaddrinfo(ai);
+		}
+	}
+
 	if (options.local_command != NULL) {
 		debug3("expanding LocalCommand: %s", options.local_command);
 		cp = options.local_command;


More information about the svn-src-all mailing list