diff --git a/lib/multi.c b/lib/multi.c index 037db1af39..a340dfcae1 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -3757,6 +3757,11 @@ void Curl_expire_ex(struct Curl_easy *data, if(!multi) return; DEBUGASSERT(eid < EXPIRE_LAST); + DEBUGASSERT(milli <= INT_MAX); + if(milli > INT_MAX) + /* Cap ridiculous timeouts, 31-bit ms is still 3.5 weeks. When the time + goes to the user, it must fit in this size. */ + milli = INT_MAX; set = *Curl_pgrs_now(data); set.tv_sec += (time_t)(milli / 1000); /* may be a 64 to 32-bit conversion */