mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
media: ov519: add missing endpoint sanity checks
commit998912346cupstream. Make sure to check that we have at least one endpoint before accessing the endpoint array to avoid dereferencing a NULL-pointer on stream start. Note that these sanity checks are not redundant as the driver is mixing looking up altsettings by index and by number, which need not coincide. Fixes:1876bb923c("V4L/DVB (12079): gspca_ov519: add support for the ov511 bridge") Fixes:b282d87332("V4L/DVB (12080): gspca_ov519: Fix ov518+ with OV7620AE (Trust spacecam 320)") Cc: stable <stable@vger.kernel.org> # 2.6.31 Cc: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
696119fa9f
commit
03e73c3ef0
@@ -3482,6 +3482,11 @@ static void ov511_mode_init_regs(struct sd *sd)
|
||||
return;
|
||||
}
|
||||
|
||||
if (alt->desc.bNumEndpoints < 1) {
|
||||
sd->gspca_dev.usb_err = -ENODEV;
|
||||
return;
|
||||
}
|
||||
|
||||
packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
|
||||
reg_w(sd, R51x_FIFO_PSIZE, packet_size >> 5);
|
||||
|
||||
@@ -3607,6 +3612,11 @@ static void ov518_mode_init_regs(struct sd *sd)
|
||||
return;
|
||||
}
|
||||
|
||||
if (alt->desc.bNumEndpoints < 1) {
|
||||
sd->gspca_dev.usb_err = -ENODEV;
|
||||
return;
|
||||
}
|
||||
|
||||
packet_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
|
||||
ov518_reg_w32(sd, R51x_FIFO_PSIZE, packet_size & ~7, 2);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user