aboutsummaryrefslogtreecommitdiff
path: root/src/tool_operhlp.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-09-23 17:11:22 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-10-02 07:50:32 +0200
commite59371a4936f8e7e2187b09a08d34d9a4c278657 (patch)
tree42dd007c9b136a2282605373a06f23409a3b6941 /src/tool_operhlp.c
parentc124e6b3c04bfd254e24312bc66c2bc9db919442 (diff)
curl: create easy handles on-demand and not ahead of time
This should again enable crazy-large download ranges of the style [1-10000000] that otherwise easily ran out of memory starting in 7.66.0 when this new handle allocating scheme was introduced. Reported-by: Peter Sumatra Fixes #4393 Closes #4438
Diffstat (limited to 'src/tool_operhlp.c')
-rw-r--r--src/tool_operhlp.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/tool_operhlp.c b/src/tool_operhlp.c
index f3fcc699f..543bf4302 100644
--- a/src/tool_operhlp.c
+++ b/src/tool_operhlp.c
@@ -37,18 +37,20 @@
void clean_getout(struct OperationConfig *config)
{
- struct getout *next;
- struct getout *node = config->url_list;
-
- while(node) {
- next = node->next;
- Curl_safefree(node->url);
- Curl_safefree(node->outfile);
- Curl_safefree(node->infile);
- Curl_safefree(node);
- node = next;
+ if(config) {
+ struct getout *next;
+ struct getout *node = config->url_list;
+
+ while(node) {
+ next = node->next;
+ Curl_safefree(node->url);
+ Curl_safefree(node->outfile);
+ Curl_safefree(node->infile);
+ Curl_safefree(node);
+ node = next;
+ }
+ config->url_list = NULL;
}
- config->url_list = NULL;
}
bool output_expected(const char *url, const char *uploadfile)