summaryrefslogtreecommitdiff
path: root/src/tool_metalink.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_metalink.c
parentc124e6b3c04bfd254e24312bc66c2bc9db919442 (diff)
downloadcurl-e59371a4936f8e7e2187b09a08d34d9a4c278657.tar.gz
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_metalink.c')
-rw-r--r--src/tool_metalink.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tool_metalink.c b/src/tool_metalink.c
index cd5a7d650..889da4bff 100644
--- a/src/tool_metalink.c
+++ b/src/tool_metalink.c
@@ -984,12 +984,14 @@ void delete_metalinkfile(metalinkfile *mlfile)
void clean_metalink(struct OperationConfig *config)
{
- while(config->metalinkfile_list) {
- metalinkfile *mlfile = config->metalinkfile_list;
- config->metalinkfile_list = config->metalinkfile_list->next;
- delete_metalinkfile(mlfile);
+ if(config) {
+ while(config->metalinkfile_list) {
+ metalinkfile *mlfile = config->metalinkfile_list;
+ config->metalinkfile_list = config->metalinkfile_list->next;
+ delete_metalinkfile(mlfile);
+ }
+ config->metalinkfile_last = 0;
}
- config->metalinkfile_last = 0;
}
void metalink_cleanup(void)