diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-08-07 07:42:18 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-08-07 07:42:18 +0200 |
commit | 0e0fd54ef3813a0ae53056db343d7abbc693ed56 (patch) | |
tree | 8d12ed64887d0acf78d12a65fae59f2df38e1d27 | |
parent | 9564c2d794edee99e6b32e47c479f513d94440f3 (diff) | |
download | curl-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.c | 12 |
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 " |