curl: cap the maximum allowed values for retry time arguments

... to avoid integer overflows later when multiplying with 1000 to
convert seconds to milliseconds.

Added test 1269 to verify.

Reported-by: Jason Lee
Closes #4166
This commit is contained in:
Daniel Stenberg 2019-07-29 22:10:13 +02:00
parent d23e87d551
commit db0a0dfb0e
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
5 changed files with 61 additions and 4 deletions

View file

@ -911,12 +911,12 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
config->retry_connrefused = toggle;
break;
case 'h': /* --retry-delay */
err = str2unum(&config->retry_delay, nextarg);
err = str2unummax(&config->retry_delay, nextarg, LONG_MAX/1000);
if(err)
return err;
break;
case 'i': /* --retry-max-time */
err = str2unum(&config->retry_maxtime, nextarg);
err = str2unummax(&config->retry_maxtime, nextarg, LONG_MAX/1000);
if(err)
return err;
break;