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

Diff for /src/usr.bin/ssh/sftp.c between version 1.145 and 1.146

version 1.145, 2013/05/17 00:13:14 version 1.146, 2013/06/04 20:42:36
Line 29 
Line 29 
 #include <histedit.h>  #include <histedit.h>
 #include <paths.h>  #include <paths.h>
 #include <libgen.h>  #include <libgen.h>
   #include <locale.h>
 #include <signal.h>  #include <signal.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <stdio.h>  #include <stdio.h>
Line 1681 
Line 1682 
     char *file, int remote, int lastarg, char quote, int terminated)      char *file, int remote, int lastarg, char quote, int terminated)
 {  {
         glob_t g;          glob_t g;
         char *tmp, *tmp2, ins[3];          char *tmp, *tmp2, ins[8];
         u_int i, hadglob, pwdlen, len, tmplen, filelen, cesc, isesc, isabs;          u_int i, hadglob, pwdlen, len, tmplen, filelen, cesc, isesc, isabs;
           int clen;
         const LineInfo *lf;          const LineInfo *lf;
   
         /* Glob from "file" location */          /* Glob from "file" location */
Line 1751 
Line 1753 
                 tmp2 = tmp + filelen - cesc;                  tmp2 = tmp + filelen - cesc;
                 len = strlen(tmp2);                  len = strlen(tmp2);
                 /* quote argument on way out */                  /* quote argument on way out */
                 for (i = 0; i < len; i++) {                  for (i = 0; i < len; i += clen) {
                           if ((clen = mblen(tmp2 + i, len - i)) < 0 ||
                               (size_t)clen > sizeof(ins) - 2)
                                   fatal("invalid multibyte character");
                         ins[0] = '\\';                          ins[0] = '\\';
                         ins[1] = tmp2[i];                          memcpy(ins + 1, tmp2 + i, clen);
                         ins[2] = '\0';                          ins[clen + 1] = '\0';
                         switch (tmp2[i]) {                          switch (tmp2[i]) {
                         case '\'':                          case '\'':
                         case '"':                          case '"':
Line 2081 
Line 2086 
   
         /* 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();
           setlocale(LC_CTYPE, "");
   
         memset(&args, '\0', sizeof(args));          memset(&args, '\0', sizeof(args));
         args.list = NULL;          args.list = NULL;

Legend:
Removed from v.1.145  
changed lines
  Added in v.1.146