[BACK]Return to ssh.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/ssh.c between version 1.404 and 1.405

version 1.404, 2014/06/27 16:41:56 version 1.405, 2014/07/03 06:39:19
Line 76 
Line 76 
 #include "canohost.h"  #include "canohost.h"
 #include "compat.h"  #include "compat.h"
 #include "cipher.h"  #include "cipher.h"
   #include "digest.h"
 #include "packet.h"  #include "packet.h"
 #include "buffer.h"  #include "buffer.h"
 #include "channels.h"  #include "channels.h"
Line 178 
Line 179 
 extern int muxserver_sock;  extern int muxserver_sock;
 extern u_int muxclient_command;  extern u_int muxclient_command;
   
   
 /* Prints a help message to the user.  This function never returns. */  /* Prints a help message to the user.  This function never returns. */
   
 static void  static void
Line 411 
Line 411 
         extern char *optarg;          extern char *optarg;
         Forward fwd;          Forward fwd;
         struct addrinfo *addrs = NULL;          struct addrinfo *addrs = NULL;
           struct ssh_digest_ctx *md;
           u_char conn_hash[SSH_DIGEST_MAX_LENGTH];
           char *conn_hash_hex;
   
         /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */          /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
         sanitise_stdfd();          sanitise_stdfd();
Line 970 
Line 973 
         shorthost[strcspn(thishost, ".")] = '\0';          shorthost[strcspn(thishost, ".")] = '\0';
         snprintf(portstr, sizeof(portstr), "%d", options.port);          snprintf(portstr, sizeof(portstr), "%d", options.port);
   
           if ((md = ssh_digest_start(SSH_DIGEST_SHA1)) == NULL ||
               ssh_digest_update(md, thishost, strlen(thishost)) < 0 ||
               ssh_digest_update(md, host, strlen(host)) < 0 ||
               ssh_digest_update(md, portstr, strlen(portstr)) < 0 ||
               ssh_digest_update(md, options.user, strlen(options.user)) < 0 ||
               ssh_digest_final(md, conn_hash, sizeof(conn_hash)) < 0)
                   fatal("%s: mux digest failed", __func__);
           ssh_digest_free(md);
           conn_hash_hex = tohex(conn_hash, ssh_digest_bytes(SSH_DIGEST_SHA1));
   
         if (options.local_command != NULL) {          if (options.local_command != NULL) {
                 debug3("expanding LocalCommand: %s", options.local_command);                  debug3("expanding LocalCommand: %s", options.local_command);
                 cp = options.local_command;                  cp = options.local_command;
                 options.local_command = percent_expand(cp, "d", pw->pw_dir,                  options.local_command = percent_expand(cp,
                     "h", host, "l", thishost, "n", host_arg, "r", options.user,                      "C", conn_hash_hex,
                     "p", portstr, "u", pw->pw_name, "L", shorthost,                      "L", shorthost,
                       "d", pw->pw_dir,
                       "h", host,
                       "l", thishost,
                       "n", host_arg,
                       "p", portstr,
                       "r", options.user,
                       "u", pw->pw_name,
                     (char *)NULL);                      (char *)NULL);
                 debug3("expanded LocalCommand: %s", options.local_command);                  debug3("expanded LocalCommand: %s", options.local_command);
                 free(cp);                  free(cp);
Line 985 
Line 1005 
                 cp = tilde_expand_filename(options.control_path,                  cp = tilde_expand_filename(options.control_path,
                     original_real_uid);                      original_real_uid);
                 free(options.control_path);                  free(options.control_path);
                 options.control_path = percent_expand(cp, "h", host,                  options.control_path = percent_expand(cp,
                     "l", thishost, "n", host_arg, "r", options.user,                      "C", conn_hash_hex,
                     "p", portstr, "u", pw->pw_name, "L", shorthost,                      "L", shorthost,
                       "h", host,
                       "l", thishost,
                       "n", host_arg,
                       "p", portstr,
                       "r", options.user,
                       "u", pw->pw_name,
                     (char *)NULL);                      (char *)NULL);
                 free(cp);                  free(cp);
         }          }
           free(conn_hash_hex);
   
         if (muxclient_command != 0 && options.control_path == NULL)          if (muxclient_command != 0 && options.control_path == NULL)
                 fatal("No ControlPath specified for \"-O\" command");                  fatal("No ControlPath specified for \"-O\" command");
         if (options.control_path != NULL)          if (options.control_path != NULL)

Legend:
Removed from v.1.404  
changed lines
  Added in v.1.405