OSDN Git Service

media: pci: tw68: Fix null-ptr-deref bug in buf prepare and finish
authorharperchen <harperchen1110@gmail.com>
Fri, 3 Mar 2023 15:30:11 +0000 (16:30 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 19 Mar 2023 21:56:45 +0000 (22:56 +0100)
commit1634b7adcc5bef645b3666fdd564e5952a9e24e0
treeebdf9d9cca8f90b0c5962f9a18d2df29dda216c1
parent3af805f70c83525305c1096ec15c64f50d9efa05
media: pci: tw68: Fix null-ptr-deref bug in buf prepare and finish

When the driver calls tw68_risc_buffer() to prepare the buffer, the
function call dma_alloc_coherent may fail, resulting in a empty buffer
buf->cpu. Later when we free the buffer or access the buffer, null ptr
deref is triggered.

This bug is similar to the following one:
https://git.linuxtv.org/media_stage.git/commit/?id=2b064d91440b33fba5b452f2d1b31f13ae911d71.

We believe the bug can be also dynamically triggered from user side.
Similarly, we fix this by checking the return value of tw68_risc_buffer()
and the value of buf->cpu before buffer free.

Signed-off-by: harperchen <harperchen1110@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/pci/tw68/tw68-video.c