]>
Commit | Line | Data |
---|---|---|
878e5d04 GKH |
1 | From 403dff4e2c94f275e24fd85f40b2732ffec268a1 Mon Sep 17 00:00:00 2001 |
2 | From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
3 | Date: Fri, 7 Nov 2014 08:48:15 -0800 | |
4 | Subject: USB: cdc-acm: check for valid interfaces | |
5 | ||
6 | From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
7 | ||
8 | commit 403dff4e2c94f275e24fd85f40b2732ffec268a1 upstream. | |
9 | ||
10 | We need to check that we have both a valid data and control inteface for both | |
11 | types of headers (union and not union.) | |
12 | ||
13 | References: https://bugzilla.kernel.org/show_bug.cgi?id=83551 | |
14 | Reported-by: Simon Schubert <2+kernel@0x2c.org> | |
15 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
16 | ||
17 | --- | |
18 | drivers/usb/class/cdc-acm.c | 9 +++++---- | |
19 | 1 file changed, 5 insertions(+), 4 deletions(-) | |
20 | ||
21 | --- a/drivers/usb/class/cdc-acm.c | |
22 | +++ b/drivers/usb/class/cdc-acm.c | |
23 | @@ -1197,10 +1197,11 @@ next_desc: | |
24 | } else { | |
25 | control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0); | |
26 | data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0)); | |
27 | - if (!control_interface || !data_interface) { | |
28 | - dev_dbg(&intf->dev, "no interfaces\n"); | |
29 | - return -ENODEV; | |
30 | - } | |
31 | + } | |
32 | + | |
33 | + if (!control_interface || !data_interface) { | |
34 | + dev_dbg(&intf->dev, "no interfaces\n"); | |
35 | + return -ENODEV; | |
36 | } | |
37 | ||
38 | if (data_interface_num != call_interface_num) |