diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-09-23 17:11:22 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-10-02 07:50:32 +0200 |
commit | e59371a4936f8e7e2187b09a08d34d9a4c278657 (patch) | |
tree | 42dd007c9b136a2282605373a06f23409a3b6941 /src/tool_metalink.c | |
parent | c124e6b3c04bfd254e24312bc66c2bc9db919442 (diff) | |
download | curl-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.c | 12 |
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) |