mirror of
https://github.com/moparisthebest/curl
synced 2024-11-12 04:25:08 -05:00
Rearranged some allocs so they will be freed correctly in the error path.
This commit is contained in:
parent
503557e5ce
commit
717adfeb96
28
lib/url.c
28
lib/url.c
@ -2860,14 +2860,6 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
|||||||
any failure */
|
any failure */
|
||||||
*in_connect = conn;
|
*in_connect = conn;
|
||||||
|
|
||||||
if (data->multi && Curl_multi_canPipeline(data->multi) &&
|
|
||||||
!conn->master_buffer) {
|
|
||||||
/* Allocate master_buffer to be used for pipelining */
|
|
||||||
conn->master_buffer = calloc(BUFSIZE, sizeof (char));
|
|
||||||
if (!conn->master_buffer)
|
|
||||||
return CURLE_OUT_OF_MEMORY;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* and we setup a few fields in case we end up actually using this struct */
|
/* and we setup a few fields in case we end up actually using this struct */
|
||||||
|
|
||||||
conn->data = data; /* Setup the association between this connection
|
conn->data = data; /* Setup the association between this connection
|
||||||
@ -2894,12 +2886,6 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
|||||||
conn->read_pos = 0;
|
conn->read_pos = 0;
|
||||||
conn->buf_len = 0;
|
conn->buf_len = 0;
|
||||||
|
|
||||||
/* Initialize the pipeline lists */
|
|
||||||
conn->send_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
|
|
||||||
conn->recv_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
|
|
||||||
if (!conn->send_pipe || !conn->recv_pipe)
|
|
||||||
return CURLE_OUT_OF_MEMORY;
|
|
||||||
|
|
||||||
/* Store creation time to help future close decision making */
|
/* Store creation time to help future close decision making */
|
||||||
conn->created = Curl_tvnow();
|
conn->created = Curl_tvnow();
|
||||||
|
|
||||||
@ -2910,6 +2896,20 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
|||||||
conn->bits.ftp_use_epsv = data->set.ftp_use_epsv;
|
conn->bits.ftp_use_epsv = data->set.ftp_use_epsv;
|
||||||
conn->bits.ftp_use_eprt = data->set.ftp_use_eprt;
|
conn->bits.ftp_use_eprt = data->set.ftp_use_eprt;
|
||||||
|
|
||||||
|
if (data->multi && Curl_multi_canPipeline(data->multi) &&
|
||||||
|
!conn->master_buffer) {
|
||||||
|
/* Allocate master_buffer to be used for pipelining */
|
||||||
|
conn->master_buffer = calloc(BUFSIZE, sizeof (char));
|
||||||
|
if (!conn->master_buffer)
|
||||||
|
return CURLE_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Initialize the pipeline lists */
|
||||||
|
conn->send_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
|
||||||
|
conn->recv_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
|
||||||
|
if (!conn->send_pipe || !conn->recv_pipe)
|
||||||
|
return CURLE_OUT_OF_MEMORY;
|
||||||
|
|
||||||
/* This initing continues below, see the comment "Continue connectdata
|
/* This initing continues below, see the comment "Continue connectdata
|
||||||
* initialization here" */
|
* initialization here" */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user