media: atomisp: Ensure that USERPTR pointers are page aligned
The atomisp code needs USERPTR pointers to be page aligned, otherwise bad things (scribbling over other parts of the process' RAM) happen. Add a check to ensure this and exit VIDIOC_QBUF calls with unaligned pointers with -EINVAL. Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
parent
30cf7e90f0
commit
6e6c4ae0f0
|
@ -1345,6 +1345,12 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
|
|||
* address and reprograme out page table properly
|
||||
*/
|
||||
if (buf->memory == V4L2_MEMORY_USERPTR) {
|
||||
if (offset_in_page(buf->m.userptr)) {
|
||||
dev_err(isp->dev, "Error userptr is not page aligned.\n");
|
||||
ret = -EINVAL;
|
||||
goto error;
|
||||
}
|
||||
|
||||
vb = pipe->capq.bufs[buf->index];
|
||||
vm_mem = vb->priv;
|
||||
if (!vm_mem) {
|
||||
|
|
Loading…
Reference in New Issue