From: libusb T. <tr...@li...> - 2010-08-25 11:44:53
|
#51: Descriptor endian parsing is backwards on big-endian hosts ------------------------+--------------------------------------------------- Reporter: marcan | Owner: Type: defect | Status: new Component: libusb-1.0 | Keywords: Blocks: | Blocked By: ------------------------+--------------------------------------------------- Commit 9bea500b attempted to fix descriptor handling by using a flag to determine whether endianness is pre-swapped or not, since apparently usbfs descriptors are in host-endian order, while sysfs descriptors are always in bus-endian order. However, it got it backwards, parsing sysfs descriptors as host-endian order and usbfs descriptors as bus-endian. The attached patch fixes the issue and solves issues getting configuration descriptors on big-endian targets. It has been tested on sysfs, but going by what information I've been able to find, it should be the correct behavior for usbfs too. This does not affect little-endian hosts where host endian == bus endian and descriptor parsing never actually switches endianness. -- Ticket URL: <http://libusb.org/ticket/51> libusb <http://libusb.org/> C library for writing portable USB drivers in userspace |