Commit 82e095a2 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- Brian Ulm reported a crash when doing a second SFTP transfer on a re-used

  easy handle if curl_easy_reset() was used between them. I fixed it and Brian
  verified that it cured his problem.

- Brian Ulm reported that if you first tried to download a non-existing SFTP
  file and then fetched an existing one and re-used the handle, libcurl would
  still report the second one as non-existing as well! I fixed it abd Brian
  verified that it cured his problem.
parent 0e40261a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -6,6 +6,16 @@

                                  Changelog

Daniel Stenberg (9 Mar 2008)
- Brian Ulm reported a crash when doing a second SFTP transfer on a re-used
  easy handle if curl_easy_reset() was used between them. I fixed it and Brian
  verified that it cured his problem.

- Brian Ulm reported that if you first tried to download a non-existing SFTP
  file and then fetched an existing one and re-used the handle, libcurl would
  still report the second one as non-existing as well! I fixed it abd Brian
  verified that it cured his problem.

Michal Marek (6 Mar 2008)
- Fix the gssapi configure check to detect newer MIT Kerberos (patch by
  Michael Calmer)
+3 −1
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ This release includes the following bugfixes:
 o crash when doing Negotiate again on a re-used connection
 o select/poll regression
 o better MIT kerberos configure check
 o curl_easy_reset() + SFTP re-used connection download crash
 o SFTP non-existing file + SFTP existing file error

This release includes the following known bugs:

@@ -55,6 +57,6 @@ advice from friends like these:
 Michal Marek, Dmitry Kurochkin, Niklas Angebrand, Gnter Knauf, Yang Tse,
 Dan Fandrich, Mike Hommey, Pooyan McSporran, Jerome Muffat-Meridol,
 Kaspar Brand, Gautam Kachroo, Zmey Petroff, Georg Lippitsch, Sam Listopad,
 Anatoli Tubman, Mike Protts, Michael Calmer
 Anatoli Tubman, Mike Protts, Michael Calmer, Brian Ulm

        Thanks! (and sorry if I forgot to mention someone)
+16 −1
Original line number Diff line number Diff line
@@ -1966,6 +1966,9 @@ static CURLcode ssh_init(struct connectdata *conn)
{
  struct SessionHandle *data = conn->data;
  struct SSHPROTO *ssh;

  conn->proto.sshc.actualcode = CURLE_OK; /* reset error code */

  if(data->state.proto.ssh)
    return CURLE_OK;

@@ -2109,6 +2112,18 @@ static CURLcode ssh_do(struct connectdata *conn, bool *done)

  *done = FALSE; /* default to false */

  /*
    Since connections can be re-used between SessionHandles, this might be a
    connection already existing but on a fresh SessionHandle struct so we must
    make sure we have a good 'struct SSHPROTO' to play with. For new
    connections, the struct SSHPROTO is allocated and setup in the
    ssh_connect() function.
  */
  Curl_reset_reqproto(conn);
  res = ssh_init(conn);
  if(res)
    return res;

  data->req.size = -1; /* make sure this is unknown at this point */

  Curl_pgrsSetUploadCounter(data, 0);