- 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:
20
lib/ftp.c
20
lib/ftp.c
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user