All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: Mirela Rabulea <mirela.rabulea@nxp.com>
Cc: "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [bug report] media: imx-jpeg: Add V4L2 driver for i.MX8 JPEG Encoder/Decoder
Date: Mon, 7 Mar 2022 12:44:19 +0300	[thread overview]
Message-ID: <20220307094419.GA3315@kadam> (raw)
In-Reply-To: <922460bc6047e1c033ccff1af77cc07c49af2585.camel@nxp.com>

On Fri, Mar 04, 2022 at 03:51:16PM +0000, Mirela Rabulea wrote:
> Hi,
> 
> On Tue, 2022-03-01 at 15:42 +0300, Dan Carpenter wrote:
> > 
> > Hello Mirela Rabulea,
> > 
> > The patch 2db16c6ed72c: "media: imx-jpeg: Add V4L2 driver for i.MX8
> > JPEG Encoder/Decoder" from Mar 11, 2021, leads to the following
> > Smatch static checker warning:
> > 
> >         drivers/media/platform/imx-jpeg/mxc-jpeg.c:1070
> > mxc_jpeg_queue_setup()
> >         warn: potential user controlled iterator 'i' (array size 2 vs
> > 7)
> > 
> > drivers/media/platform/imx-jpeg/mxc-jpeg.c
> >     1053 static int mxc_jpeg_queue_setup(struct vb2_queue *q,
> >     1054                                 unsigned int *nbuffers,
> >     1055                                 unsigned int *nplanes,
> >     1056                                 unsigned int sizes[],
> >     1057                                 struct device *alloc_ctxs[])
> >     1058 {
> >     1059         struct mxc_jpeg_ctx *ctx = vb2_get_drv_priv(q);
> >     1060         struct mxc_jpeg_q_data *q_data = NULL;
> >     1061         int i;
> >     1062
> >     1063         q_data = mxc_jpeg_get_q_data(ctx, q->type);
> >     1064         if (!q_data)
> >     1065                 return -EINVAL;
> >     1066
> >     1067         /* Handle CREATE_BUFS situation - *nplanes != 0 */
> >     1068         if (*nplanes) {
> >     1069                 for (i = 0; i < *nplanes; i++) {
> > --> 1070                         if (sizes[i] < q_data->sizeimage[i])
> > 
> > Smatch thinks "*nplanes" is controlled by the user in
> > vb2_create_bufs()
> > and it can be up to VIDEO_MAX_PLANES(8).  Meanwhile the q_data-
> > >sizeimage[]
> > array only has MXC_JPEG_MAX_PLANES(2) elements so this looks to be an
> > out of bounds access.
> 
> Thanks for pointing this out. I tried to run smatch (for the first
> time), and I do not get this warning reported. I'm wondering what am I
> missing?
> 
> mirela@fsr-ub1664-134:/workssd/linux-next$
> /workssd/smatch/smatch_scripts/kchecker drivers/media/platform/imx-
> jpeg/
>   CHECK   scripts/mod/empty.c
>   CALL    scripts/checksyscalls.sh
>   CALL    scripts/atomic/check-atomics.sh
>   CHECK   arch/arm64/kernel/vdso/vgettimeofday.c
>   CHECK   drivers/media/platform/imx-jpeg/mxc-jpeg-hw.c
>   CC [M]  drivers/media/platform/imx-jpeg/mxc-jpeg.o
>   CHECK   drivers/media/platform/imx-jpeg/mxc-jpeg.c
>   LD [M]  drivers/media/platform/imx-jpeg/mxc-jpeg-encdec.o
> mirela@fsr-ub1664-134:/workssd/linux-next$ 
> 
> I can induce some errors in the source code, and then I also see CHECK
> errors.
> 
> I have built the kernel database with
> smatch/smatch_scripts/build_kernel_data.sh before runing kchecker.
> 

Oh, sorry.  This check hasn't been published yet it's something I've
just started working on.  If the checker is wrong just ignore it, but
could you give me a hint so I can improve the check?

regards,
dan carpenter


  reply	other threads:[~2022-03-07  9:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-01 12:42 [bug report] media: imx-jpeg: Add V4L2 driver for i.MX8 JPEG Encoder/Decoder Dan Carpenter
2022-03-04 15:51 ` Mirela Rabulea
2022-03-07  9:44   ` Dan Carpenter [this message]
2022-03-08 13:18     ` [EXT] " Mirela Rabulea

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220307094419.GA3315@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mirela.rabulea@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.