Hi Amos,

Amos Jeffries wrote:
> One of them was unsafe use of a variable typed 'size_t' setting up
> StoreIOBUffer local variable
> 
> The constructor using it is:
> 
>  StoreIOBuffer(size_t aLength, int64_t anOffset, char *someData) :
>             length (aLength), offset (anOffset), data (someData)
>     {
>         flags.error = 0;
>     }
> 
> 
> where length/aLength are the size_t in question.
> 
> I had thought it the length of the buffer and offset in the buffer. But
> seeing the offset is now int64, is it the lengths of the file being
> buffered? In which case it should be a 64-bit too I think.
> 

The StoreIOBuffer::length is buffer size and StoreIOBuffer::offset is
the offset inside the objects which must be 64 bit integer to allow
large objects passing through squid3.
I think it must be 64bit even if storing large objects does not
supported (it is not just an offset of a stored object) and this is why
the int64_t type used instead of off_t type.


Regards,
    Christos

Reply via email to