media: uvcvideo: Fix .queue_setup() to check the number of planes
According to documentation of struct vb2_ops the .queue_setup() callback should return an error if the number of planes parameter contains an invalid value on input. Fix this instead of ignoring the value. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@intel.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
7e09f7d5c7
commit
dfa6f2400c
@ -82,9 +82,14 @@ static int uvc_queue_setup(struct vb2_queue *vq,
|
||||
struct uvc_streaming *stream = uvc_queue_to_stream(queue);
|
||||
unsigned size = stream->ctrl.dwMaxVideoFrameSize;
|
||||
|
||||
/* Make sure the image size is large enough. */
|
||||
/*
|
||||
* When called with plane sizes, validate them. The driver supports
|
||||
* single planar formats only, and requires buffers to be large enough
|
||||
* to store a complete frame.
|
||||
*/
|
||||
if (*nplanes)
|
||||
return sizes[0] < size ? -EINVAL : 0;
|
||||
return *nplanes != 1 || sizes[0] < size ? -EINVAL : 0;
|
||||
|
||||
*nplanes = 1;
|
||||
sizes[0] = size;
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user