aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2007-04-29 07:04:29 +0000
committerDan Fandrich <dan@coneharvesters.com>2007-04-29 07:04:29 +0000
commit717adfeb96579d1aeda8102ac47d35a67cdc16d0 (patch)
tree57a10808aa2a1d4f340df9a761c5318ee8ff12e6
parent503557e5ceac4ec3e5caec1d0a2e4d2f39eca471 (diff)
Rearranged some allocs so they will be freed correctly in the error path.
-rw-r--r--lib/url.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/url.c b/lib/url.c
index 6611486a0..5ebc9e8b9 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -2860,14 +2860,6 @@ static CURLcode CreateConnection(struct SessionHandle *data,
any failure */
*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 */
conn->data = data; /* Setup the association between this connection
@@ -2894,12 +2886,6 @@ static CURLcode CreateConnection(struct SessionHandle *data,
conn->read_pos = 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 */
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_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
* initialization here" */