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

Diff for /src/usr.bin/ssh/sftp-client.c between version 1.97.4.1 and 1.98

version 1.97.4.1, 2013/11/08 05:52:21 version 1.98, 2013/05/17 00:13:14
Line 387 
Line 387 
                 } else {                  } else {
                         debug2("Unrecognised server extension \"%s\"", name);                          debug2("Unrecognised server extension \"%s\"", name);
                 }                  }
                 xfree(name);                  free(name);
                 xfree(value);                  free(value);
         }          }
   
         buffer_free(&msg);          buffer_free(&msg);
Line 464 
Line 464 
   
         if (dir) {          if (dir) {
                 ents = 0;                  ents = 0;
                 *dir = xcalloc(1, sizeof(**dir));                  *dir = xmalloc(sizeof(**dir));
                 (*dir)[0] = NULL;                  (*dir)[0] = NULL;
         }          }
   
Line 502 
Line 502 
                                 error("Couldn't read directory: %s",                                  error("Couldn't read directory: %s",
                                     fx2txt(status));                                      fx2txt(status));
                                 do_close(conn, handle, handle_len);                                  do_close(conn, handle, handle_len);
                                 xfree(handle);                                  free(handle);
                                 buffer_free(&msg);                                  buffer_free(&msg);
                                 return(status);                                  return(status);
                         }                          }
Line 538 
Line 538 
   
                         if (dir) {                          if (dir) {
                                 *dir = xrealloc(*dir, ents + 2, sizeof(**dir));                                  *dir = xrealloc(*dir, ents + 2, sizeof(**dir));
                                 (*dir)[ents] = xcalloc(1, sizeof(***dir));                                  (*dir)[ents] = xmalloc(sizeof(***dir));
                                 (*dir)[ents]->filename = xstrdup(filename);                                  (*dir)[ents]->filename = xstrdup(filename);
                                 (*dir)[ents]->longname = xstrdup(longname);                                  (*dir)[ents]->longname = xstrdup(longname);
                                 memcpy(&(*dir)[ents]->a, a, sizeof(*a));                                  memcpy(&(*dir)[ents]->a, a, sizeof(*a));
                                 (*dir)[++ents] = NULL;                                  (*dir)[++ents] = NULL;
                         }                          }
  next:   next:
                         xfree(filename);                          free(filename);
                         xfree(longname);                          free(longname);
                 }                  }
         }          }
   
         buffer_free(&msg);          buffer_free(&msg);
         do_close(conn, handle, handle_len);          do_close(conn, handle, handle_len);
         xfree(handle);          free(handle);
   
         /* Don't return partial matches on interrupt */          /* Don't return partial matches on interrupt */
         if (interrupted && dir != NULL && *dir != NULL) {          if (interrupted && dir != NULL && *dir != NULL) {
                 free_sftp_dirents(*dir);                  free_sftp_dirents(*dir);
                 *dir = xcalloc(1, sizeof(**dir));                  *dir = xmalloc(sizeof(**dir));
                 **dir = NULL;                  **dir = NULL;
         }          }
   
Line 575 
Line 575 
         int i;          int i;
   
         for (i = 0; s[i]; i++) {          for (i = 0; s[i]; i++) {
                 xfree(s[i]->filename);                  free(s[i]->filename);
                 xfree(s[i]->longname);                  free(s[i]->longname);
                 xfree(s[i]);                  free(s[i]);
         }          }
         xfree(s);          free(s);
 }  }
   
 int  int
Line 753 
Line 753 
         debug3("SSH_FXP_REALPATH %s -> %s size %lu", path, filename,          debug3("SSH_FXP_REALPATH %s -> %s size %lu", path, filename,
             (unsigned long)a->size);              (unsigned long)a->size);
   
         xfree(longname);          free(longname);
   
         buffer_free(&msg);          buffer_free(&msg);
   
Line 900 
Line 900 
   
         debug3("SSH_FXP_READLINK %s -> %s", path, filename);          debug3("SSH_FXP_READLINK %s -> %s", path, filename);
   
         xfree(longname);          free(longname);
   
         buffer_free(&msg);          buffer_free(&msg);
   
Line 1050 
Line 1050 
                     local_path, strerror(errno));                      local_path, strerror(errno));
                 do_close(conn, handle, handle_len);                  do_close(conn, handle, handle_len);
                 buffer_free(&msg);                  buffer_free(&msg);
                 xfree(handle);                  free(handle);
                 return(-1);                  return(-1);
         }          }
   
Line 1082 
Line 1082 
                             (unsigned long long)offset,                              (unsigned long long)offset,
                             (unsigned long long)offset + buflen - 1,                              (unsigned long long)offset + buflen - 1,
                             num_req, max_req);                              num_req, max_req);
                         req = xcalloc(1, sizeof(*req));                          req = xmalloc(sizeof(*req));
                         req->id = conn->msg_id++;                          req->id = conn->msg_id++;
                         req->len = buflen;                          req->len = buflen;
                         req->offset = offset;                          req->offset = offset;
Line 1114 
Line 1114 
                                 read_error = 1;                                  read_error = 1;
                         max_req = 0;                          max_req = 0;
                         TAILQ_REMOVE(&requests, req, tq);                          TAILQ_REMOVE(&requests, req, tq);
                         xfree(req);                          free(req);
                         num_req--;                          num_req--;
                         break;                          break;
                 case SSH2_FXP_DATA:                  case SSH2_FXP_DATA:
Line 1133 
Line 1133 
                                 max_req = 0;                                  max_req = 0;
                         }                          }
                         progress_counter += len;                          progress_counter += len;
                         xfree(data);                          free(data);
   
                         if (len == req->len) {                          if (len == req->len) {
                                 TAILQ_REMOVE(&requests, req, tq);                                  TAILQ_REMOVE(&requests, req, tq);
                                 xfree(req);                                  free(req);
                                 num_req--;                                  num_req--;
                         } else {                          } else {
                                 /* Resend the request for the missing data */                                  /* Resend the request for the missing data */
Line 1209 
Line 1209 
         }          }
         close(local_fd);          close(local_fd);
         buffer_free(&msg);          buffer_free(&msg);
         xfree(handle);          free(handle);
   
         return(status);          return(status);
 }  }
Line 1281 
Line 1281 
                 } else                  } else
                         logit("%s: not a regular file\n", new_src);                          logit("%s: not a regular file\n", new_src);
   
                 xfree(new_dst);                  free(new_dst);
                 xfree(new_src);                  free(new_src);
         }          }
   
         if (pflag) {          if (pflag) {
Line 1318 
Line 1318 
   
         ret = download_dir_internal(conn, src_canon, dst,          ret = download_dir_internal(conn, src_canon, dst,
             dirattrib, pflag, printflag, 0);              dirattrib, pflag, printflag, 0);
         xfree(src_canon);          free(src_canon);
         return ret;          return ret;
 }  }
   
Line 1421 
Line 1421 
                             strerror(errno));                              strerror(errno));
   
                 if (len != 0) {                  if (len != 0) {
                         ack = xcalloc(1, sizeof(*ack));                          ack = xmalloc(sizeof(*ack));
                         ack->id = ++id;                          ack->id = ++id;
                         ack->offset = offset;                          ack->offset = offset;
                         ack->len = len;                          ack->len = len;
Line 1469 
Line 1469 
                         debug3("In write loop, ack for %u %u bytes at %lld",                          debug3("In write loop, ack for %u %u bytes at %lld",
                             ack->id, ack->len, (long long)ack->offset);                              ack->id, ack->len, (long long)ack->offset);
                         ++ackid;                          ++ackid;
                         xfree(ack);                          free(ack);
                 }                  }
                 offset += len;                  offset += len;
                 if (offset < 0)                  if (offset < 0)
Line 1479 
Line 1479 
   
         if (showprogress)          if (showprogress)
                 stop_progress_meter();                  stop_progress_meter();
         xfree(data);          free(data);
   
         if (status != SSH2_FX_OK) {          if (status != SSH2_FX_OK) {
                 error("Couldn't write to remote file \"%s\": %s",                  error("Couldn't write to remote file \"%s\": %s",
Line 1499 
Line 1499 
   
         if (do_close(conn, handle, handle_len) != SSH2_FX_OK)          if (do_close(conn, handle, handle_len) != SSH2_FX_OK)
                 status = -1;                  status = -1;
         xfree(handle);          free(handle);
   
         return status;          return status;
 }  }
Line 1585 
Line 1585 
                         }                          }
                 } else                  } else
                         logit("%s: not a regular file\n", filename);                          logit("%s: not a regular file\n", filename);
                 xfree(new_dst);                  free(new_dst);
                 xfree(new_src);                  free(new_src);
         }          }
   
         do_setstat(conn, dst, &a);          do_setstat(conn, dst, &a);
Line 1608 
Line 1608 
         }          }
   
         ret = upload_dir_internal(conn, src, dst_canon, pflag, printflag, 0);          ret = upload_dir_internal(conn, src, dst_canon, pflag, printflag, 0);
         xfree(dst_canon);          free(dst_canon);
         return ret;          return ret;
 }  }
   

Legend:
Removed from v.1.97.4.1  
changed lines
  Added in v.1.98