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

Diff for /src/usr.bin/ssh/sftp-server.c between version 1.94 and 1.95

version 1.94, 2011/06/17 21:46:16 version 1.95, 2013/01/03 12:54:49
Line 1374 
Line 1374 
         int in, out, max, ch, skipargs = 0, log_stderr = 0;          int in, out, max, ch, skipargs = 0, log_stderr = 0;
         ssize_t len, olen, set_size;          ssize_t len, olen, set_size;
         SyslogFacility log_facility = SYSLOG_FACILITY_AUTH;          SyslogFacility log_facility = SYSLOG_FACILITY_AUTH;
         char *cp, buf[4*4096];          char *cp, *homedir = NULL, buf[4*4096];
         long mask;          long mask;
   
         extern char *optarg;          extern char *optarg;
Line 1382 
Line 1382 
   
         log_init(__progname, log_level, log_facility, log_stderr);          log_init(__progname, log_level, log_facility, log_stderr);
   
         while (!skipargs && (ch = getopt(argc, argv, "f:l:u:cehR")) != -1) {          pw = pwcopy(user_pw);
   
           while (!skipargs && (ch = getopt(argc, argv, "d:f:l:u:cehR")) != -1) {
                 switch (ch) {                  switch (ch) {
                 case 'R':                  case 'R':
                         readonly = 1;                          readonly = 1;
Line 1407 
Line 1409 
                         if (log_facility == SYSLOG_FACILITY_NOT_SET)                          if (log_facility == SYSLOG_FACILITY_NOT_SET)
                                 error("Invalid log facility \"%s\"", optarg);                                  error("Invalid log facility \"%s\"", optarg);
                         break;                          break;
                   case 'd':
                           cp = tilde_expand_filename(optarg, user_pw->pw_uid);
                           homedir = percent_expand(cp, "d", user_pw->pw_dir,
                               "u", user_pw->pw_name, (char *)NULL);
                           free(cp);
                           break;
                 case 'u':                  case 'u':
                         errno = 0;                          errno = 0;
                         mask = strtol(optarg, &cp, 8);                          mask = strtol(optarg, &cp, 8);
Line 1434 
Line 1442 
         } else          } else
                 client_addr = xstrdup("UNKNOWN");                  client_addr = xstrdup("UNKNOWN");
   
         pw = pwcopy(user_pw);  
   
         logit("session opened for local user %s from [%s]",          logit("session opened for local user %s from [%s]",
             pw->pw_name, client_addr);              pw->pw_name, client_addr);
   
Line 1454 
Line 1460 
         set_size = howmany(max + 1, NFDBITS) * sizeof(fd_mask);          set_size = howmany(max + 1, NFDBITS) * sizeof(fd_mask);
         rset = (fd_set *)xmalloc(set_size);          rset = (fd_set *)xmalloc(set_size);
         wset = (fd_set *)xmalloc(set_size);          wset = (fd_set *)xmalloc(set_size);
   
           if (homedir != NULL) {
                   if (chdir(homedir) != 0) {
                           error("chdir to \"%s\" failed: %s", homedir,
                               strerror(errno));
                   }
           }
   
         for (;;) {          for (;;) {
                 memset(rset, 0, set_size);                  memset(rset, 0, set_size);

Legend:
Removed from v.1.94  
changed lines
  Added in v.1.95