diff options
author | Chad Fraleigh <chadf@triularity.org> | 2021-08-30 02:51:27 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2021-09-30 11:07:56 +0300 |
commit | 936c7daa4d99c0c5d10c97cb9afc28966d547d80 (patch) | |
tree | 0e19efc98b92ffdf4655877e03a9bfbc3225fcb6 /drivers/media/usb/gspca/gspca.c | |
parent | b94b551050b2aad898f87cb78c5e84d3e3e049f2 (diff) | |
download | linux-936c7daa4d99c0c5d10c97cb9afc28966d547d80.tar.xz |
media: gspca: Limit frame size to sizeimage.
Limit frame size to what userland code expects. This can happen when
cameras, such as Kensington VideoCAM, use fixed sized transfer packets
which includes trailing junk in the final packet.
Signed-off-by: Chad Fraleigh <chadf@triularity.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/media/usb/gspca/gspca.c')
-rw-r--r-- | drivers/media/usb/gspca/gspca.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/usb/gspca/gspca.c b/drivers/media/usb/gspca/gspca.c index 47d8f28bfdfc..770714c34295 100644 --- a/drivers/media/usb/gspca/gspca.c +++ b/drivers/media/usb/gspca/gspca.c @@ -444,6 +444,8 @@ void gspca_frame_add(struct gspca_dev *gspca_dev, * next first packet, wake up the application and advance * in the queue */ if (packet_type == LAST_PACKET) { + if (gspca_dev->image_len > gspca_dev->pixfmt.sizeimage) + gspca_dev->image_len = gspca_dev->pixfmt.sizeimage; spin_lock_irqsave(&gspca_dev->qlock, flags); list_del(&buf->list); spin_unlock_irqrestore(&gspca_dev->qlock, flags); |