From 97e242658265ed97badfecd3a5d7f596077716d0 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 22 Aug 2003 23:08:37 +0000 Subject: "staywithu" writes: In BusyBox v1.00-pre2, commands like ls, df with -h option report a wrong file size for files larger than 4GBtye!! For example, when I execute 'ls -l', it reports -rw-r--r-- 1 root root 5368709120 Aug 17 2003 large_stream.tp when I execute 'ls -lh', I expect that -rw-r--r-- 1 root root 5.0G Aug 17 2003 large_stream.tp but it reports -rw-r--r-- 1 root root 1.0G Aug 17 2003 large_stream.tp I fixed this bug that... Line 31 in libbb/human_readable.c and line 275 include/libbb.h const char *make_human_readable_str(unsigned long size => const char *make_human_readable_str(unsigned long long size It's OK! --- libbb/human_readable.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'libbb/human_readable.c') diff --git a/libbb/human_readable.c b/libbb/human_readable.c index 7bdad36a9..656889150 100644 --- a/libbb/human_readable.c +++ b/libbb/human_readable.c @@ -28,9 +28,8 @@ #include #include "libbb.h" -const char *make_human_readable_str(unsigned long size, - unsigned long block_size, - unsigned long display_unit) +const char *make_human_readable_str(unsigned long long size, + unsigned long block_size, unsigned long display_unit) { /* The code will adjust for additional (appended) units. */ static const char zero_and_units[] = { '0', 0, 'k', 'M', 'G', 'T' }; @@ -48,7 +47,7 @@ const char *make_human_readable_str(unsigned long size, f = fmt; frac = 0; - val = ((unsigned long long) size) * block_size; + val = size * block_size; if (val == 0) { return u; } -- cgit v1.2.3