提交 f8d3c0e5 编写于 作者: J Johan Hovold 提交者: Jialin Zhang

media: flexcop-usb: fix endpoint type check

stable inclusion
from stable-v5.10.146
commit c5ee36018d320c16713711e68e13dbef4a31ffee
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I6D0VX

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c5ee36018d320c16713711e68e13dbef4a31ffee

--------------------------------

commit 763679f0 upstream.

Commit d725d20e ("media: flexcop-usb: sanity checking of endpoint
type") tried to add an endpoint type sanity check for the single
isochronous endpoint but instead broke the driver by checking the wrong
descriptor or random data beyond the last endpoint descriptor.

Make sure to check the right endpoint descriptor.

Fixes: d725d20e ("media: flexcop-usb: sanity checking of endpoint type")
Cc: Oliver Neukum <oneukum@suse.com>
Cc: stable@vger.kernel.org	# 5.9
Reported-by: NDongliang Mu <mudongliangabcd@gmail.com>
Signed-off-by: NJohan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20220822151027.27026-1-johan@kernel.orgSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NJialin Zhang <zhangjialin11@huawei.com>
Reviewed-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 7962a8df
...@@ -512,7 +512,7 @@ static int flexcop_usb_init(struct flexcop_usb *fc_usb) ...@@ -512,7 +512,7 @@ static int flexcop_usb_init(struct flexcop_usb *fc_usb)
if (fc_usb->uintf->cur_altsetting->desc.bNumEndpoints < 1) if (fc_usb->uintf->cur_altsetting->desc.bNumEndpoints < 1)
return -ENODEV; return -ENODEV;
if (!usb_endpoint_is_isoc_in(&fc_usb->uintf->cur_altsetting->endpoint[1].desc)) if (!usb_endpoint_is_isoc_in(&fc_usb->uintf->cur_altsetting->endpoint[0].desc))
return -ENODEV; return -ENODEV;
switch (fc_usb->udev->speed) { switch (fc_usb->udev->speed) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册