mirror of
https://github.com/sheumann/hush.git
synced 2025-01-03 00:31:16 +00:00
"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!
This commit is contained in:
parent
6d3c7e7a9c
commit
97e2426582
@ -267,7 +267,8 @@ enum {
|
|||||||
MEGABYTE = (KILOBYTE*1024),
|
MEGABYTE = (KILOBYTE*1024),
|
||||||
GIGABYTE = (MEGABYTE*1024)
|
GIGABYTE = (MEGABYTE*1024)
|
||||||
};
|
};
|
||||||
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);
|
||||||
|
|
||||||
int bb_ask_confirmation(void);
|
int bb_ask_confirmation(void);
|
||||||
int klogctl(int type, char * b, int len);
|
int klogctl(int type, char * b, int len);
|
||||||
|
@ -28,9 +28,8 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "libbb.h"
|
#include "libbb.h"
|
||||||
|
|
||||||
const char *make_human_readable_str(unsigned long size,
|
const char *make_human_readable_str(unsigned long long size,
|
||||||
unsigned long block_size,
|
unsigned long block_size, unsigned long display_unit)
|
||||||
unsigned long display_unit)
|
|
||||||
{
|
{
|
||||||
/* The code will adjust for additional (appended) units. */
|
/* The code will adjust for additional (appended) units. */
|
||||||
static const char zero_and_units[] = { '0', 0, 'k', 'M', 'G', 'T' };
|
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;
|
f = fmt;
|
||||||
frac = 0;
|
frac = 0;
|
||||||
|
|
||||||
val = ((unsigned long long) size) * block_size;
|
val = size * block_size;
|
||||||
if (val == 0) {
|
if (val == 0) {
|
||||||
return u;
|
return u;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user