diff --git a/include/libbb.h b/include/libbb.h index 750e0bb4f..a6d9a510b 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -267,7 +267,8 @@ enum { MEGABYTE = (KILOBYTE*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 klogctl(int type, char * b, int len); 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; }