Re: [PATCH] of: unittest: Fix out of bounds array access when id < 0

From: Frank Rowand
Date: Wed Dec 22 2021 - 13:06:50 EST


On 12/21/21 6:20 AM, Rob Herring wrote:
> On Tue, Dec 21, 2021 at 5:34 AM Yin Xiujiang <yinxiujiang@xxxxxxxxxx> wrote:
>>
>> In of_unittest_untrack_overlay if id is less than 0 then
>> overlay_id_bits will be out of bounds. And it is also mentioned
>> in bugzilla as a bug report:
>> https://bugzilla.kernel.org/show_bug.cgi?id=214867
>>
>> Fix this bug by tiggering WARN_ON()
>
> If id shouldn't be less than 0, can we make it unsigned instead as
> discussed here[1].
>
> Rob
>
> [1] https://lore.kernel.org/all/c474a371-b524-1da8-4a67-e72cf8f2b0f7@xxxxxxxxx/
>

There are problems with changing to unsigned (fixable, but more extensive
code changes).

I think that the implementation of id tracking in unittest.c is overly
fragile, and I would prefer to just re-implement it (see also my reply
to the proposed patch).

Let me take a look at whether I can create an alternate
implementation of id tracking.

-Frank