Am Sonntag, 12. September 2010, 20:15:18 schrieb Amaury Pouly: > Hello, > The cdc-acm driver (drivers/usb/class/cdc-acm.c) expects, when the control > interface is different from the data interface, the following things: > * one notification endpoint in control interface > * two data endpoints (bulk/iso) in data interface Depends. In core CDC it is clearly optional. For ACM the PSTN spec states that a device must support the ResponseAvailable notification. That notification goes over the notification endpoint. > The problem is that the first requirement is not in the spec as far as I > understand it (it's optional). Furthermore, the driver doesn't check if there > actually is an endpoint but makes a pointer from it: > > epctrl = &control_interface->cur_altsetting->endpoint[0].desc; > > If there is no notification endpoint, this will result in a NULL pointer > dereference. Notice that there are two problems out there: > * it should do the check anyway, for safety reason Yes. > * it shouldn't assume an endpoint if the spec doesn't require it (but I'm > unsure about this point) Which devices do you see this problem with? Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html