On Sun, Dec 13, 2015 at 10:38 PM, Ted Unangst <t...@tedunangst.com> wrote:
> Maxim Pugachev wrote:
>> Currently two checks in free() function confirm the correctness of
>> freedsize argument. I think that it's better to check that provided
>> freedsize fall into the same bucket that was recorded in kmemusage
>> struct: it covers both cases.
>
> I don't know. This doesn't seem clearer to me. An error message with
> bucket numbers isn't any more helpful.

Ted, thank you for your comments!

I can compare the buckets to generate a clearer message, but you're
right, it'll look a bit complicated.

I've read this code again and I think there is an error in a second
check ("size too small"). For example, if freedsize = 2048 and size =
4096, then panic will not fire because "freedsize < size / 2" is
false. But I guess it should, because BUCKETINDX(2048) == 11, but
BUCKETINDX(4096) == 12.

What do you think?

Reply via email to