Hi. I've found a bug in lib/human.c in fileutils-4.0, relating to large file support. Before applying the patch (attached), ls -alF reports the following: total 3002960 drwxr-xr-x 3 root root 4096 Aug 22 09:46 ./ drwxr-xr-x 8 root root 4096 Aug 22 06:26 ../ -rw-r--r-- 1 root root 18446744072486584320 Aug 22 06:38 3gigfile drwxr-xr-x 2 root root 16384 Aug 21 00:57 lost+found/ After the patch: total 3002960 drwxr-xr-x 3 root root 4096 Aug 22 09:46 ./ drwxr-xr-x 8 root root 4096 Aug 22 06:26 ../ -rw-r--r-- 1 root root 3072000000 Aug 22 06:38 3gigfile drwxr-xr-x 2 root root 16384 Aug 21 00:57 lost+found/ PinkFreud [Mike Edwards] Brainbench certified Master Linux Administrator http://www.brainbench.com/transcript.jsp?pid=158188 ----------------------------------- Unsolicited advertisments to this address are not welcome.
--- fileutils-4.0/lib.old/human.c Wed Jul 22 14:29:46 1998 +++ fileutils-4.0/lib/human.c Sat Aug 26 23:21:08 2000 @@ -172,9 +172,9 @@ } else { - int divisor = to_block_size / from_block_size; - int r10 = (n % divisor) * 10; - int r2 = (r10 % divisor) * 2; + unsigned int divisor = to_block_size / from_block_size; + unsigned int r10 = (n % divisor) * 10; + unsigned int r2 = (r10 % divisor) * 2; amt = n / divisor; tenths = r10 / divisor; rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2);