From 0e0fd54ef3813a0ae53056db343d7abbc693ed56 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 7 Aug 2019 07:42:18 +0200 Subject: fixup conversion from 'curl_off_t' to 'long', possible loss of data --- src/tool_operate.c | 12 +++++++----- 1 file 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 " -- cgit v1.2.1