git: 9feba5ab9023 - stable/11 - fetch: MFC: make -S argument accept values > 2GB
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Jun 2022 19:11:10 UTC
The branch stable/11 has been updated by eugen:
URL: https://cgit.FreeBSD.org/src/commit/?id=9feba5ab9023bac268f5f26fae1bc6d8ffbd49eb
commit 9feba5ab9023bac268f5f26fae1bc6d8ffbd49eb
Author: Stefan Eßer <se@FreeBSD.org>
AuthorDate: 2022-02-20 14:24:43 +0000
Commit: Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2022-06-06 19:10:43 +0000
fetch: MFC: 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
(cherry picked from commit 32066c96fa00fc19c8355e1956ca5aa9ead37673)
---
usr.bin/fetch/fetch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/usr.bin/fetch/fetch.c b/usr.bin/fetch/fetch.c
index 22f7a1d2950b..14195f841a69 100644
--- a/usr.bin/fetch/fetch.c
+++ b/usr.bin/fetch/fetch.c
@@ -989,7 +989,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;