]> git.baikalelectronics.ru Git - kernel.git/commit
media: ti-vpe: vpe: fix a v4l2-compliance failure causing a kernel panic
authorBenoit Parrot <bparrot@ti.com>
Mon, 7 Oct 2019 15:09:56 +0000 (12:09 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 10 Oct 2019 16:47:52 +0000 (13:47 -0300)
commitb2f5988af94a377c84e0dc7d1a1ceef4623fbe06
treed17b41a4f2d98288200ebc1d2506cfa94ab7bcc5
parent4f6fba8a0a0f8f5b768ddc7bf06382b23df910b2
media: ti-vpe: vpe: fix a v4l2-compliance failure causing a kernel panic

v4l2-compliance fails with this message:

   warn: v4l2-test-formats.cpp(717): \
    TRY_FMT cannot handle an invalid pixelformat.
   test VIDIOC_TRY_FMT: FAIL

This causes the following kernel panic:

Unable to handle kernel paging request at virtual address 56595561
pgd = ecd80e00
*pgd=00000000
Internal error: Oops: 205 [#1] PREEMPT SMP ARM
...
CPU: 0 PID: 930 Comm: v4l2-compliance Not tainted \
4.14.62-01715-gc8cd67f49a19 #1
Hardware name: Generic DRA72X (Flattened Device Tree)
task: ece44d80 task.stack: ecc6e000
PC is at __vpe_try_fmt+0x18c/0x2a8 [ti_vpe]
LR is at 0x8

Because the driver fails to properly check the 'num_planes' values for
proper ranges it ends up accessing out of bound data causing the kernel
panic.

Since this driver only handle single or dual plane pixel format, make
sure the provided value does not exceed 2 planes.

Signed-off-by: Benoit Parrot <bparrot@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/ti-vpe/vpe.c