Commit edce4445 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

If a partial file has been read or written, force a closure the existing

connection to avoid re-use of it, since we cannot know in what state it is.
parent 7bee4140
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -637,6 +637,8 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
       !data->set.crlf) {
       !data->set.crlf) {
      failf(data, "Uploaded unaligned file size (%d out of %d bytes)",
      failf(data, "Uploaded unaligned file size (%d out of %d bytes)",
            *ftp->bytecountp, data->set.infilesize);
            *ftp->bytecountp, data->set.infilesize);
      conn->bits.close = TRUE; /* close this connection since we don't
                                  know what state this error leaves us in */
      return CURLE_PARTIAL_FILE;
      return CURLE_PARTIAL_FILE;
    }
    }
  }
  }
@@ -644,6 +646,8 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
    if((-1 != conn->size) && (conn->size != *ftp->bytecountp) &&
    if((-1 != conn->size) && (conn->size != *ftp->bytecountp) &&
       (conn->maxdownload != *ftp->bytecountp)) {
       (conn->maxdownload != *ftp->bytecountp)) {
      failf(data, "Received only partial file: %d bytes", *ftp->bytecountp);
      failf(data, "Received only partial file: %d bytes", *ftp->bytecountp);
      conn->bits.close = TRUE; /* close this connection since we don't
                                  know what state this error leaves us in */
      return CURLE_PARTIAL_FILE;
      return CURLE_PARTIAL_FILE;
    }
    }
    else if(!ftp->dont_check &&
    else if(!ftp->dont_check &&