From f8a205853381650ea1b7e05abec93cd0ae2b77b5 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 21 Sep 2019 23:46:41 +0200 Subject: 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 --- src/tool_operate.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src') 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: -- cgit v1.2.3