diff options
author | le <le@FreeBSD.org> | 2004-05-19 11:07:30 +0000 |
---|---|---|
committer | le <le@FreeBSD.org> | 2004-05-19 11:07:30 +0000 |
commit | db8317e9835a860ed49308bf8be0b919371d1faa (patch) | |
tree | 08f7bba86234256c6535872bdcafb3065a970d17 | |
parent | 197b6179fcea25cc57baa02559cca1e43899e157 (diff) | |
download | FreeBSD-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@
-rw-r--r-- | usr.bin/fetch/fetch.c | 6 |
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); } |