diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2014-09-30 18:28:42 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-10-21 08:53:27 -0200 |
commit | c601f53f8fe5aab4d8b506104d0fd0a7b6a19922 (patch) | |
tree | 7f55147e7456f864f941ccbd89d6be897f544850 /drivers/media/usb/uvc/uvcvideo.h | |
parent | c204e1fafbd50a158a34c8a5bd9682cb04ecb29b (diff) | |
download | op-kernel-dev-c601f53f8fe5aab4d8b506104d0fd0a7b6a19922.zip op-kernel-dev-c601f53f8fe5aab4d8b506104d0fd0a7b6a19922.tar.gz |
[media] v4l: uvcvideo: Fix buffer completion size check
Commit e93e7fd9f5a3fffec7792dbcc4c3574653effda7 ("v4l2: uvcvideo: Allow
using larger buffers") reworked the buffer size sanity check at buffer
completion time to use the frame size instead of the allocated buffer
size. However, it introduced two bugs in doing so:
- it assigned the allocated buffer size to the frame_size field, instead
of assigning the correct frame size
- it performed the assignment in the S_FMT handler, resulting in the
frame_size field being uninitialized if the userspace application
doesn't call S_FMT.
Fix both issues by removing the frame_size field and validating the
buffer size against the UVC video control dwMaxFrameSize.
Fixes: e93e7fd9f5a3 ("v4l2: uvcvideo: Allow using larger buffers")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/usb/uvc/uvcvideo.h')
-rw-r--r-- | drivers/media/usb/uvc/uvcvideo.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 6f676c2..864ada7 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h @@ -457,7 +457,6 @@ struct uvc_streaming { struct uvc_format *def_format; struct uvc_format *cur_format; struct uvc_frame *cur_frame; - size_t frame_size; /* Protect access to ctrl, cur_format, cur_frame and hardware video * probe control. |