diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-09-21 23:46:41 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-09-21 23:46:41 +0200 |
commit | 3aa44a5ee5751e03a00c73a7025a5ad601b3619b (patch) | |
tree | 870b2a7d71376ee7439cef608a4297c998ea58b5 | |
parent | e09749dd435e46d7c3a0a74019dcb135e2fc301c (diff) | |
download | curl-bagder/curl-exit-on-error.tar.gz |
curl: exit the create_transfers loop on errorsbagder/curl-exit-on-error
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
-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: |