mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
USB: cdc-acm: Fixing crash when ACM probing interfaces with no endpoint descriptors.
Certain USB devices, such as the Nokia X6 mobile phone, don't expose any endpoint descriptors on some of their interfaces. If the ACM driver is forced to probe all interfaces on a device the a NULL pointer dereference will occur when the ACM driver attempts to use the endpoint of the alternative settings. One way to get the ACM driver to probe all the interfaces is by using the /sys/bus/usb/drivers/cdc_acm/new_id interface. This patch checks that the endpoint pointer for the current alternate settings is non-NULL before using it. Signed-off-by: Toby Gray <toby.gray@realvnc.com> Cc: Oliver Neukum <oliver@neukum.name> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
5b239f0aeb
commit
577045c0a7
@ -965,7 +965,8 @@ static int acm_probe(struct usb_interface *intf,
|
||||
}
|
||||
|
||||
if (!buflen) {
|
||||
if (intf->cur_altsetting->endpoint->extralen &&
|
||||
if (intf->cur_altsetting->endpoint &&
|
||||
intf->cur_altsetting->endpoint->extralen &&
|
||||
intf->cur_altsetting->endpoint->extra) {
|
||||
dev_dbg(&intf->dev,
|
||||
"Seeking extra descriptors on endpoint\n");
|
||||
|
Loading…
Reference in New Issue
Block a user