diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-09-21 23:46:41 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-09-22 12:27:58 +0200 |
commit | f8a205853381650ea1b7e05abec93cd0ae2b77b5 (patch) | |
tree | 35e9fad5d4bab5930b23a24378e69661837c7162 /src | |
parent | 5ee88eee6861ab1c98c03bc0b1c8f63c447c7fdc (diff) | |
download | curl-f8a205853381650ea1b7e05abec93cd0ae2b77b5.tar.gz |
curl: exit the create_transfers loop on errors
When looping around the ranges and given URLs to create transfers, all
errors should exit the loop and return. Previously it would keep
looping.
Reported-by: SumatraPeter on github
Bug: #4393
Closes #4396
Diffstat (limited to 'src')
-rw-r--r-- | src/tool_operate.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/tool_operate.c b/src/tool_operate.c index 316951869..ede816d34 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -1885,15 +1885,9 @@ static CURLcode create_transfers(struct GlobalConfig *global, urls = NULL; } - if(infilenum > 1) { - /* when file globbing, exit loop upon critical error */ - if(is_fatal_error(result)) - break; - } - else if(result) - /* when not file globbing, exit loop upon any error */ + if(result) + /* exit loop upon error */ break; - } /* loop to the next globbed upload file */ /* Free loop-local allocated memory */ @@ -1913,6 +1907,9 @@ static CURLcode create_transfers(struct GlobalConfig *global, Curl_safefree(urlnode->infile); urlnode->flags = 0; + if(result) + /* exit loop upon error */ + break; } /* for-loop through all URLs */ quit_curl: |