[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#8335) MDB_MULTIPLE issues



On 14/02/17 03:09, hyc@symas.com wrote:
> Hallvard Breien Furuseth wrote:
>> On 13/02/17 13:16, hyc@symas.com wrote:
>>> We should probably check if mv_size is greater than UINT_MAX and return
>>> EINVAL. (Or ERANGE.)
>>
>> If you mean check for overflow, that doesn't work on 32-bit hosts.
>
> It's not possible to pass in a datacount > UINT_MAX on 32bit so there's no
> need for such a check. It's only needed on 64bit where uint is smaller than
> size_t.

I don't get it.  You want to add this check for the sake of
avoiding to change dcount,mcount from unsigned to double? Why?

datacount*datasize (passed to page_spill) can overflow on 32-bit, I
thought that's what you meant. But come to think of it, page_spill()
itself more than doubles mv_size which can also overflow on 32-bit
or with 64-bit MDB_MULTIPLE, it needs some tweaks.