]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
Explicit initialization of all FTP struct members in ftp_init()
authorYang Tse <yangsita@gmail.com>
Thu, 19 Nov 2009 17:21:56 +0000 (17:21 +0000)
committerYang Tse <yangsita@gmail.com>
Thu, 19 Nov 2009 17:21:56 +0000 (17:21 +0000)
lib/ftp.c

index ff2a828d3708c66f7501aa3e6cc044ad51e69564..b2cd13c8c0076e81a428339ed069f69ec7cb36c2 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -3089,16 +3089,20 @@ static CURLcode ftp_easy_statemach(struct connectdata *conn)
  */
 static CURLcode ftp_init(struct connectdata *conn)
 {
-  struct SessionHandle *data = conn->data;
-  struct FTP *ftp = data->state.proto.ftp;
-  if(!ftp) {
-    ftp = data->state.proto.ftp = calloc(1, sizeof(struct FTP));
-    if(!ftp)
+  struct FTP *ftp;
+
+  if(NULL == conn->data->state.proto.ftp) {
+    conn->data->state.proto.ftp = malloc(sizeof(struct FTP));
+    if(NULL == conn->data->state.proto.ftp)
       return CURLE_OUT_OF_MEMORY;
   }
 
+  ftp = conn->data->state.proto.ftp;
+
   /* 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
      during a session, but we re-init them here since on subsequent inits