Explicit initialization of all FTP struct members in ftp_init()
This commit is contained in:
16
lib/ftp.c
16
lib/ftp.c
@@ -3089,16 +3089,20 @@ static CURLcode ftp_easy_statemach(struct connectdata *conn)
|
|||||||
*/
|
*/
|
||||||
static CURLcode ftp_init(struct connectdata *conn)
|
static CURLcode ftp_init(struct connectdata *conn)
|
||||||
{
|
{
|
||||||
struct SessionHandle *data = conn->data;
|
struct FTP *ftp;
|
||||||
struct FTP *ftp = data->state.proto.ftp;
|
|
||||||
if(!ftp) {
|
if(NULL == conn->data->state.proto.ftp) {
|
||||||
ftp = data->state.proto.ftp = calloc(1, sizeof(struct FTP));
|
conn->data->state.proto.ftp = malloc(sizeof(struct FTP));
|
||||||
if(!ftp)
|
if(NULL == conn->data->state.proto.ftp)
|
||||||
return CURLE_OUT_OF_MEMORY;
|
return CURLE_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ftp = conn->data->state.proto.ftp;
|
||||||
|
|
||||||
/* get some initial data into the ftp struct */
|
/* get some initial data into the ftp struct */
|
||||||
ftp->bytecountp = &data->req.bytecount;
|
ftp->bytecountp = &conn->data->req.bytecount;
|
||||||
|
ftp->transfer = FTPTRANSFER_BODY;
|
||||||
|
ftp->downloadsize = 0;
|
||||||
|
|
||||||
/* No need to duplicate user+password, the 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
|
during a session, but we re-init them here since on subsequent inits
|
||||||
|
Reference in New Issue
Block a user