mirror of
https://github.com/curl/curl.git
synced 2026-04-15 00:41:41 +03:00
multi: free up more data earleier in DONE
Before checking for more users of the connection and possibly bailing out. Fixes #10971 Reported-by: Paweł Wegner Closes #10972
This commit is contained in:
parent
b32b7bb37a
commit
81b2b577df
1 changed files with 9 additions and 8 deletions
17
lib/multi.c
17
lib/multi.c
|
|
@ -699,6 +699,15 @@ static CURLcode multi_done(struct Curl_easy *data,
|
|||
|
||||
process_pending_handles(data->multi); /* connection / multiplex */
|
||||
|
||||
Curl_safefree(data->state.ulbuf);
|
||||
|
||||
/* if the transfer was completed in a paused state there can be buffered
|
||||
data left to free */
|
||||
for(i = 0; i < data->state.tempcount; i++) {
|
||||
Curl_dyn_free(&data->state.tempwrite[i].b);
|
||||
}
|
||||
data->state.tempcount = 0;
|
||||
|
||||
CONNCACHE_LOCK(data);
|
||||
Curl_detach_connection(data);
|
||||
if(CONN_INUSE(conn)) {
|
||||
|
|
@ -717,14 +726,6 @@ static CURLcode multi_done(struct Curl_easy *data,
|
|||
conn->dns_entry = NULL;
|
||||
}
|
||||
Curl_hostcache_prune(data);
|
||||
Curl_safefree(data->state.ulbuf);
|
||||
|
||||
/* if the transfer was completed in a paused state there can be buffered
|
||||
data left to free */
|
||||
for(i = 0; i < data->state.tempcount; i++) {
|
||||
Curl_dyn_free(&data->state.tempwrite[i].b);
|
||||
}
|
||||
data->state.tempcount = 0;
|
||||
|
||||
/* if data->set.reuse_forbid is TRUE, it means the libcurl client has
|
||||
forced us to close this connection. This is ignored for requests taking
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue