Le mercredi 24 juin 2026 à 06:58 +0000, Christian Hewitt a écrit : > When VIDIOC_TRY_FMT is called with an unsupported pixel format on the > OUTPUT queue, vdec_try_fmt_common() falls back to V4L2_PIX_FMT_MPEG2. > However, if a distro has locally patched MPEG2 support out (as it has > been broken for some time) the platform format table does not contain > MPEG2 so find_format() returns NULL and the subsequent dereference of > fmt_out->max_width triggers a NULL pointer dereference. > > Fix this by falling back to the first format in the platform's format > array instead of hardcoding V4L2_PIX_FMT_MPEG2. This is always valid > since every platform defines at least one format. > > Fixes: 3e7f51bd9607 ("media: meson: add v4l2 m2m video decoder driver") > Signed-off-by: Christian Hewitt Reviewed-by: Nicolas Dufresne > > --- > This fixes use of v4l2-ctl and v4l2-compliance tools when MPEG2 support > has been disabled via vdec_platform.c - NB: although this is a fix it's > also a rather niche scenario so there's no need to backport it to older > stable kernels. > >  drivers/staging/media/meson/vdec/vdec.c | 4 ++-- >  1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/media/meson/vdec/vdec.c > b/drivers/staging/media/meson/vdec/vdec.c > index 4b77ec1af5a7..f3e7072f221a 100644 > --- a/drivers/staging/media/meson/vdec/vdec.c > +++ b/drivers/staging/media/meson/vdec/vdec.c > @@ -504,8 +504,8 @@ vdec_try_fmt_common(struct amvdec_session *sess, u32 size, >   case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE: >   fmt_out = find_format(fmts, size, pixmp->pixelformat); >   if (!fmt_out) { > - pixmp->pixelformat = V4L2_PIX_FMT_MPEG2; > - fmt_out = find_format(fmts, size, pixmp- > >pixelformat); > + pixmp->pixelformat = fmts[0].pixfmt; > + fmt_out = &fmts[0]; >   } >   break; >   case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE: