- Song Ma's warning if -r/--range is given with a "bad" range, also noted in

the man page now.
This commit is contained in:
Daniel Stenberg 2007-04-22 09:31:27 +00:00
parent 0bbc759c0c
commit a93af43974
3 changed files with 29 additions and 3 deletions

View file

@ -2350,7 +2350,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
(and won't actually be range by definition). The man page previously
claimed that to be a good way, why this code is added to work-around
it. */
if(!strchr(nextarg, '-')) {
if(ISDIGIT(*nextarg) && !strchr(nextarg, '-')) {
char buffer[32];
curl_off_t off;
warnf(config,
@ -2360,10 +2360,23 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
snprintf(buffer, sizeof(buffer), "%Od-", off);
GetStr(&config->range, buffer);
}
else
{
/* byte range requested */
char* tmp_range;
tmp_range=nextarg;
while(*tmp_range != '\0') {
if(!ISDIGIT(*tmp_range)&&*tmp_range!='-'&&*tmp_range!=',') {
warnf(config,"Invalid character is found in given range. "
"A specified range MUST have only digits in "
"\'start\'-\'stop\'. The server's response to this "
"request is uncertain.\n");
break;
}
tmp_range++;
}
/* byte range requested */
GetStr(&config->range, nextarg);
}
break;
case 'R':
/* use remote file's time */