The code example that you sent earlier shows it clearly:
there is an overflow bug.

it is extremely easy to fix too.

Marcus


Rich Rauenzahn wrote:
On Mon, Oct 4, 2010 at 2:56 AM, Matus UHLAR - fantomas
<[email protected]> wrote:
On 29.09.10 17:42, Rich Rauenzahn wrote:
This code strikes me as incorrect... Basically for files > 2GB, squid
does the accounting wrong!
It's apparently just a filesystem overhead, which varies between filesystems
but may eat some % of disk space.

No, it's a bug.  File system overhead doesn't account for taking 2-3
times more space than what squid says it is using.   See
http://bugs.squid-cache.org/show_bug.cgi?id=3068

Note that sizeof(int) is 4 in both 32bit and 64bit compilation models.
 I believe that blks * fs.blksize overflows 32bit before it is right
shifted by 10 bits.
if you want to use filesizes over 2GB on 32bit system, you must make your
program to be 64-bit capable, and compile it that way.

the same applies about using 64bit numbers.

No, "int"s are still 32bit in the 64bit compilation model.  And they
will still overflow.

Rich


Reply via email to