Vasily Galkin <galkin...@yandex.ru> writes:

> I reverted 823bd3433424aa959499e6fd8f2da842430a8d42 and recompiled cdc_ether 
> module for debian's 4.4rc6.
> Device begin working normally as usual, no any Oopses or problems.
>
> Attaching lsusb output for this kernel.

[..]

>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass       224 Wireless
>       bInterfaceSubClass      1 Radio Frequency
>       bInterfaceProtocol      3 RNDIS
>       iInterface              0 
>       ** UNRECOGNIZED:  05 24 01 00 01
>       ** UNRECOGNIZED:  04 24 02 00
>       ** UNRECOGNIZED:  05 24 02 00 01

Fascinating!  A nice example of why we should never trust descriptors,
even for real, presumably non-malicious, devices.  The last descriptor
there is invalid, and should probably have been "05 24 06 00 01".
I.e. a CDC Union pointing to intf #0 as master and #1 as slave.

Anyway, we won't consider that a union descriptor. And oops we go when
we unconditionally dereference info->u.

But like you, I cannot find the commit supposed to fix this.  There is
no such commit in net, net-next, usb or usb-next AFAICS.  And I can't
find any other relevant commit after the one introducing this bug
either.  Did you forget to submit it maybe, Oliver?

BTW, it would be great if any reference to commit id's included the
title, like 'commit 823bd3433424 ("cdc-ether: switch to common CDC
parser")'. That makes it easier to spot any cutnpaste error or such.


Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to