On Sat, Feb 11, 2023 at 09:43:50PM +0100, Martin Blumenstingl wrote: > Hello Ville. > > On Mon, Feb 6, 2023 at 10:58 AM Ville Syrjälä > <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > [...] > > > Change HDMI_VENDOR_INFOFRAME_SIZE to 6 bytes so > > > hdmi_vendor_infoframe_pack_only() can properly check the passed buffer > > > size and avoid an out of bounds write to ptr[8] or ptr[9]. > > > > The function should return -ENOSPC if the caller didn't > > provide a big enough buffer. > Indeed, I'm not sure why I didn't notice when I sent the patch. > > > Are you saying there are drivers that are passing a bogus size here? > Thankfully not - at least when I checked the last time drivers passed > a 10 byte - or bigger - buffer. > My main concern is the HDMI_INFOFRAME_SIZE macro. It's used in various > drivers like this: > u8 buffer[HDMI_INFOFRAME_SIZE(AVI)]; > > One could use HDMI_VENDOR_INFOFRAME_SIZE with this as well: > u8 buffer[HDMI_INFOFRAME_SIZE(VENDOR)]; > But it would only result in an 8 byte wide buffer. > Nobody uses it like this yet. Not sure that would make any sense since a vendor specific infoframe has no defined size until you figure out which vendor defined it (via the OUI). I suppose the current value of 4 is also a bit nonsense as well then, becasue that is a legal value for the HDMI 1.4 vendor specific infoframe, but might not be valid for any other infoframe. We should perhaps just get rid of HDMI_VENDOR_INFOFRAME_SIZE entirely. > > Do you see any reason why my patch could cause problems? > If not then I want to re-send it with an updated description. > > > Best regards, > Martin -- Ville Syrjälä Intel