mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 17:59:32 +00:00
V4L/DVB: v4l: videobuf: prevent passing a NULL to dma_free_coherent()
When a driver that uses videobuf-dma-contig is used with the USERPTR memory access method a kernel oops might happen: a NULL address may be passed to dma_free_coherent(). This happens when an application calls REQBUFS and then exits without queuing any buffers. This patch fixes that bug. Signed-off-by: Pawel Osciak <p.osciak@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
a08c7c68f7
commit
b2b476f53a
1 changed files with 4 additions and 2 deletions
|
@ -393,8 +393,10 @@ void videobuf_dma_contig_free(struct videobuf_queue *q,
|
|||
}
|
||||
|
||||
/* read() method */
|
||||
dma_free_coherent(q->dev, mem->size, mem->vaddr, mem->dma_handle);
|
||||
mem->vaddr = NULL;
|
||||
if (mem->vaddr) {
|
||||
dma_free_coherent(q->dev, mem->size, mem->vaddr, mem->dma_handle);
|
||||
mem->vaddr = NULL;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(videobuf_dma_contig_free);
|
||||
|
||||
|
|
Loading…
Reference in a new issue