summaryrefslogtreecommitdiffstats
path: root/usr.bin/fetch
diff options
context:
space:
mode:
authorle <le@FreeBSD.org>2004-05-19 11:07:30 +0000
committerle <le@FreeBSD.org>2004-05-19 11:07:30 +0000
commitdb8317e9835a860ed49308bf8be0b919371d1faa (patch)
tree08f7bba86234256c6535872bdcafb3065a970d17 /usr.bin/fetch
parent197b6179fcea25cc57baa02559cca1e43899e157 (diff)
downloadFreeBSD-src-db8317e9835a860ed49308bf8be0b919371d1faa.zip
FreeBSD-src-db8317e9835a860ed49308bf8be0b919371d1faa.tar.gz
Fix integer overflow in the file size output when dealing with
large files (i.e. DVD images). Reviewed by: des@
Diffstat (limited to 'usr.bin/fetch')
-rw-r--r--usr.bin/fetch/fetch.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.bin/fetch/fetch.c b/usr.bin/fetch/fetch.c
index 051b895..931a8ea 100644
--- a/usr.bin/fetch/fetch.c
+++ b/usr.bin/fetch/fetch.c
@@ -148,7 +148,7 @@ stat_eta(struct xferstat *xs)
*/
static const char *prefixes = " kMGTP";
static const char *
-stat_bytes(size_t bytes)
+stat_bytes(off_t bytes)
{
static char str[16];
const char *prefix = prefixes;
@@ -157,7 +157,7 @@ stat_bytes(size_t bytes)
bytes /= 1024;
prefix++;
}
- snprintf(str, sizeof str, "%4zu %cB", bytes, *prefix);
+ snprintf(str, sizeof str, "%4jd %cB", (intmax_t)bytes, *prefix);
return (str);
}
@@ -176,7 +176,7 @@ stat_bps(struct xferstat *xs)
snprintf(str, sizeof str, "?? Bps");
} else {
bps = (xs->rcvd - xs->offset) / delta;
- snprintf(str, sizeof str, "%sps", stat_bytes((size_t)bps));
+ snprintf(str, sizeof str, "%sps", stat_bytes((off_t)bps));
}
return (str);
}
OpenPOWER on IntegriCloud