fetch: make -S argument accept values > 2GB
Use strtoll() to parse the argument of the -S option. FreeBSD has supported 64 bit file offsets for more than 25 years on all architectures and off_t is a 64 bit integer type for that reason. While strtol() returns a 64 bit value on 64 LP64 architectures, it is limit to 32 bit on e.g. i386. The strtoll() function returns a 64 but result on all supported architectures and therefore supports the possible file lengths and file offsets on 32 bit archtectures. Reported by: antoine MFC after: 3 days
This commit is contained in:
parent
2f0656fb9b
commit
32066c96fa
@ -1005,7 +1005,7 @@ main(int argc, char *argv[])
|
||||
r_flag = 1;
|
||||
break;
|
||||
case 'S':
|
||||
S_size = (off_t)strtol(optarg, &end, 10);
|
||||
S_size = strtoll(optarg, &end, 10);
|
||||
if (*optarg == '\0' || *end != '\0')
|
||||
errx(1, "invalid size (%s)", optarg);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user