diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-08-22 23:08:37 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-08-22 23:08:37 +0000 |
commit | 97e242658265ed97badfecd3a5d7f596077716d0 (patch) | |
tree | 9fd8d2a4b154f2e6b4707480f2a1c4709c5103ff /libbb/human_readable.c | |
parent | 6d3c7e7a9cd5c92e1557f3287ab87658161a8591 (diff) | |
download | busybox-97e242658265ed97badfecd3a5d7f596077716d0.tar.gz |
"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!
Diffstat (limited to 'libbb/human_readable.c')
-rw-r--r-- | libbb/human_readable.c | 7 |
1 files changed, 3 insertions, 4 deletions
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 <stdio.h> #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; } |