Author: vangyzen
Date: Thu Jul 16 18:44:18 2015
New Revision: 285642
URL: https://svnweb.freebsd.org/changeset/base/285642

Log:
  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
  
  PR:           198043
  Differential Revision:        https://reviews.freebsd.org/D3103
  Reviewed by:  des
  Approved by:  kib (mentor)
  MFC after:    3 days
  Relnotes:     yes
  Sponsored by: Dell Inc.

Modified:
  head/crypto/openssh/ssh.c

Modified: head/crypto/openssh/ssh.c
==============================================================================
--- head/crypto/openssh/ssh.c   Thu Jul 16 18:24:06 2015        (r285641)
+++ head/crypto/openssh/ssh.c   Thu Jul 16 18:44:18 2015        (r285642)
@@ -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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to