summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-08-07 07:42:18 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-08-07 07:42:18 +0200
commit0e0fd54ef3813a0ae53056db343d7abbc693ed56 (patch)
tree8d12ed64887d0acf78d12a65fae59f2df38e1d27
parent9564c2d794edee99e6b32e47c479f513d94440f3 (diff)
downloadcurl-bagder/retry-after.tar.gz
fixup conversion from 'curl_off_t' to 'long', possible loss of databagder/retry-after
-rw-r--r--src/tool_operate.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 3e426960a..01ee20061 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -496,7 +496,8 @@ static CURLcode post_transfer(struct GlobalConfig *global,
}
if(retry) {
- curl_off_t sleeptime = 0;
+ long sleeptime = 0;
+ curl_off_t retry_after = 0;
static const char * const m[]={
NULL,
"timeout",
@@ -507,12 +508,13 @@ static CURLcode post_transfer(struct GlobalConfig *global,
sleeptime = per->retry_sleep;
if(RETRY_HTTP == retry) {
- curl_easy_getinfo(curl, CURLINFO_RETRY_AFTER, &sleeptime);
- if(sleeptime) {
- if(sleeptime > LONG_MAX/1000)
+ curl_easy_getinfo(curl, CURLINFO_RETRY_AFTER, &retry_after);
+ if(retry_after) {
+ /* store in a 'long', make sure it doesn't overflow */
+ if(retry_after > LONG_MAX/1000)
sleeptime = LONG_MAX;
else
- sleeptime *= 1000; /* milliseconds */
+ sleeptime = (long)retry_after * 1000; /* milliseconds */
}
}
warnf(config->global, "Transient problem: %s "