Re: [PATCH v2] [next] drm/radeon: Replace one-element array with flexible-array member

From: Kees Cook
Date: Tue Nov 01 2022 - 18:42:03 EST


On Tue, Nov 01, 2022 at 06:09:16PM -0400, Alex Deucher wrote:
> On Tue, Nov 1, 2022 at 5:54 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
> > Does the ROM always only have a single byte there? This seems unlikely
> > given the member "ucFakeEDIDLength" (and the code below).
>
> I'm not sure. I'm mostly concerned about this:
>
> record += fake_edid_record->ucFakeEDIDLength ?
> fake_edid_record->ucFakeEDIDLength + 2 :
> sizeof(ATOM_FAKE_EDID_PATCH_RECORD);

But this is exactly what the code currently does, as noted in the commit
log: "It's worth mentioning that doing a build before/after this patch
results in no binary output differences.

> Presumably the record should only exist if ucFakeEDIDLength is non 0,
> but I don't know if there are some OEMs out there that just included
> an empty record for some reason. Maybe the code is wrong today and
> there are some OEMs that include it and the array is already size 0.
> In that case, Paulo's original patches are probably more correct.

Right, but if true, that seems to be a distinctly separate bug fix?

--
Kees Cook