- Norbert Frese filed bug report #1951588: "Problem with curlftpfs and

libcurl" (http://curl.haxx.se/bug/view.cgi?id=1951588) which seems to be an
  identical report to what Denis Golovan reported in
  http://curl.haxx.se/mail/lib-2008-02/0108.html The FTP code didn't reset the
  user/password pointers properly even though there might've been a new
  struct/cconnection getting used.
This commit is contained in:
Daniel Stenberg 2008-04-28 21:29:17 +00:00
parent c3ba2198b1
commit 7a6cff4b3a
3 changed files with 25 additions and 11 deletions

View File

@ -7,6 +7,14 @@
Changelog
Daniel Stenberg (28 Apr 2008)
- Norbert Frese filed bug report #1951588: "Problem with curlftpfs and
libcurl" (http://curl.haxx.se/bug/view.cgi?id=1951588) which seems to be an
identical report to what Denis Golovan reported in
http://curl.haxx.se/mail/lib-2008-02/0108.html The FTP code didn't reset the
user/password pointers properly even though there might've been a new
struct/cconnection getting used.
Daniel Stenberg (26 Apr 2008)
- Reverted back to use automake 1.9.6 in the next release (from automake
1.10.1) since it *still* suffers from Solaris-related bugs. Our previous

View File

@ -23,6 +23,8 @@ This release includes the following bugfixes:
o malloc() failure check in Negotiate
o -i and -I together now work the same no matter what order they're used
o the typechecker can be bypassed by defining CURL_DISABLE_TYPECHECK
o a pointer mixup could make the FTP code send bad user+password under rare
circumstances (found when using curlftpfs)
This release includes the following known bugs:
@ -30,7 +32,9 @@ This release includes the following known bugs:
Other curl-related news:
o
o pycurl 7.18.1 was released: http://pycurl.sf.net/
o brand new curl Haskell binding:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl
New curl mirrors:
@ -41,6 +45,6 @@ advice from friends like these:
Michal Marek, Daniel Fandrich, Scott Barrett, Alexey Simak, Daniel Black,
Rafa Muyo, Andre Guibert de Bruet, Brock Noland, Sandor Feldi, Stefan Krause,
David Shaw
David Shaw, Norbert Frese
Thanks! (and sorry if I forgot to mention someone)

View File

@ -3006,20 +3006,22 @@ static CURLcode ftp_easy_statemach(struct connectdata *conn)
static CURLcode ftp_init(struct connectdata *conn)
{
struct SessionHandle *data = conn->data;
struct FTP *ftp;
if(data->state.proto.ftp)
return CURLE_OK;
struct FTP *ftp = data->state.proto.ftp;
if(!ftp) {
ftp = (struct FTP *)calloc(sizeof(struct FTP), 1);
if(!ftp)
return CURLE_OUT_OF_MEMORY;
ftp = (struct FTP *)calloc(sizeof(struct FTP), 1);
if(!ftp)
return CURLE_OUT_OF_MEMORY;
data->state.proto.ftp = ftp;
data->state.proto.ftp = ftp;
}
/* get some initial data into the ftp struct */
ftp->bytecountp = &data->req.bytecount;
/* no need to duplicate them, this connectdata struct won't change */
/* No need to duplicate user+password, the connectdata struct won't change
during a session, but we re-init them here since on subsequent inits
since the conn struct may have changed or been replaced.
*/
ftp->user = conn->user;
ftp->passwd = conn->passwd;
if(isBadFtpString(ftp->user) || isBadFtpString(ftp->passwd))