David:

I've been looking through hcd.c:rh_call_control(), intending to fix a
single problem (it alters urb->status without locking urb->lock).  It
turns out there are a couple of other problems there too.

In particular, the routine isn't careful about not copying more than
wLength bytes for small transfers.  And when handling class requests
there's no way for the HCD's hub_control() routine to set the proper value
in urb->actual_length.  (The hub_control routines aren't careful not to
copy more than wLength bytes either.)

Do you agree that these things need to be fixed?

Alan Stern



-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to