Date: Fri, 4 Mar 2022 19:49:57 GMT From: =?utf-8?Q?Stefan E=C3=9Fer?= <se@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 97b94f4332ac - stable/13 - fetch: make -S argument accept values > 2GB Message-ID: <202203041949.224JnvAj069671@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by se: URL: https://cgit.FreeBSD.org/src/commit/?id=97b94f4332ac370b5fd04b973e96564fa99b043f commit 97b94f4332ac370b5fd04b973e96564fa99b043f Author: Stefan Eßer <se@FreeBSD.org> AuthorDate: 2022-02-20 14:24:43 +0000 Commit: Stefan Eßer <se@FreeBSD.org> CommitDate: 2022-03-04 19:49:38 +0000 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. (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 73ee96541859..ad51de15f4d3 100644 --- a/usr.bin/fetch/fetch.c +++ b/usr.bin/fetch/fetch.c @@ -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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202203041949.224JnvAj069671>