[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.527 and 1.528

version 1.527, 2020/04/10 00:52:07 version 1.528, 2020/05/29 04:25:40
Line 244 
Line 244 
 }  }
   
 /*  /*
    * Expands the set of percent_expand options used by the majority of keywords
    * AND perform environment variable substitution.
    * Caller must free returned string.
    */
   static char *
   default_client_percent_dollar_expand(const char *str, const char *homedir,
       const char *remhost, const char *remuser, const char *locuser)
   {
           char *ret;
   
           ret = percent_dollar_expand(str,
               /* values from statics above */
               DEFAULT_CLIENT_PERCENT_EXPAND_ARGS,
               /* values from arguments */
               "d", homedir,
               "h", remhost,
               "r", remuser,
               "u", locuser,
               (char *)NULL);
           if (ret == NULL)
                   fatal("invalid environment variable expansion");
           return ret;
   }
   
   /*
  * Attempt to resolve a host name / port to a set of addresses and   * Attempt to resolve a host name / port to a set of addresses and
  * optionally return any CNAMEs encountered along the way.   * optionally return any CNAMEs encountered along the way.
  * Returns NULL on failure.   * Returns NULL on failure.
Line 1357 
Line 1382 
         if (options.control_path != NULL) {          if (options.control_path != NULL) {
                 cp = tilde_expand_filename(options.control_path, getuid());                  cp = tilde_expand_filename(options.control_path, getuid());
                 free(options.control_path);                  free(options.control_path);
                 options.control_path = default_client_percent_expand(cp,                  options.control_path = default_client_percent_dollar_expand(cp,
                     pw->pw_dir, host, options.user, pw->pw_name);                      pw->pw_dir, host, options.user, pw->pw_name);
                 free(cp);                  free(cp);
         }          }
   
         if (options.identity_agent != NULL) {          if (options.identity_agent != NULL) {
                 p = tilde_expand_filename(options.identity_agent, getuid());                  p = tilde_expand_filename(options.identity_agent, getuid());
                 cp = default_client_percent_expand(p,                  cp = default_client_percent_dollar_expand(p,
                     pw->pw_dir, host, options.user, pw->pw_name);                      pw->pw_dir, host, options.user, pw->pw_name);
                 free(p);                  free(p);
                 free(options.identity_agent);                  free(options.identity_agent);
Line 1374 
Line 1399 
         if (options.forward_agent_sock_path != NULL) {          if (options.forward_agent_sock_path != NULL) {
                 p = tilde_expand_filename(options.forward_agent_sock_path,                  p = tilde_expand_filename(options.forward_agent_sock_path,
                     getuid());                      getuid());
                 cp = default_client_percent_expand(p,                  cp = default_client_percent_dollar_expand(p,
                     pw->pw_dir, host, options.user, pw->pw_name);                      pw->pw_dir, host, options.user, pw->pw_name);
                 free(p);                  free(p);
                 free(options.forward_agent_sock_path);                  free(options.forward_agent_sock_path);
Line 1546 
Line 1571 
                         unsetenv(SSH_AUTHSOCKET_ENV_NAME);                          unsetenv(SSH_AUTHSOCKET_ENV_NAME);
                 } else {                  } else {
                         cp = options.identity_agent;                          cp = options.identity_agent;
                         if (cp[0] == '$') {                          /* legacy (limited) format */
                           if (cp[0] == '$' && cp[1] != '{') {
                                 if (!valid_env_name(cp + 1)) {                                  if (!valid_env_name(cp + 1)) {
                                         fatal("Invalid IdentityAgent "                                          fatal("Invalid IdentityAgent "
                                             "environment variable name %s", cp);                                              "environment variable name %s", cp);
Line 2174 
Line 2200 
                         continue;                          continue;
                 }                  }
                 cp = tilde_expand_filename(options.identity_files[i], getuid());                  cp = tilde_expand_filename(options.identity_files[i], getuid());
                 filename = default_client_percent_expand(cp,                  filename = default_client_percent_dollar_expand(cp,
                     pw->pw_dir, host, options.user, pw->pw_name);                      pw->pw_dir, host, options.user, pw->pw_name);
                 free(cp);                  free(cp);
                 check_load(sshkey_load_public(filename, &public, NULL),                  check_load(sshkey_load_public(filename, &public, NULL),
Line 2224 
Line 2250 
         for (i = 0; i < options.num_certificate_files; i++) {          for (i = 0; i < options.num_certificate_files; i++) {
                 cp = tilde_expand_filename(options.certificate_files[i],                  cp = tilde_expand_filename(options.certificate_files[i],
                     getuid());                      getuid());
                 filename = default_client_percent_expand(cp,                  filename = default_client_percent_dollar_expand(cp,
                     pw->pw_dir, host, options.user, pw->pw_name);                      pw->pw_dir, host, options.user, pw->pw_name);
                 free(cp);                  free(cp);
   

Legend:
Removed from v.1.527  
changed lines
  Added in v.1.528