summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-09-21 23:46:41 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-09-22 12:27:58 +0200
commitf8a205853381650ea1b7e05abec93cd0ae2b77b5 (patch)
tree35e9fad5d4bab5930b23a24378e69661837c7162
parent5ee88eee6861ab1c98c03bc0b1c8f63c447c7fdc (diff)
downloadcurl-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
-rw-r--r--src/tool_operate.c13
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: