summaryrefslogtreecommitdiff
path: root/libusb/descriptor.c
diff options
context:
space:
mode:
authorDaniel Drake <dsd@gentoo.org>2009-02-16 21:20:28 -0300
committerDaniel Drake <dsd@gentoo.org>2009-02-16 21:20:28 -0300
commite91207860cac09b3afaafc4c14221b78d585c59a (patch)
tree3ec01dd82fd4a19bfe5fe7e66a827668bdf28a27 /libusb/descriptor.c
parentccf6d3d2f6acf9b9a1cb5e1f1b03f382ae509b17 (diff)
downloadlibusb-e91207860cac09b3afaafc4c14221b78d585c59a.tar.gz
Fix endianness in device descriptors
Pointed out by Nathan Hjelm.
Diffstat (limited to 'libusb/descriptor.c')
-rw-r--r--libusb/descriptor.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libusb/descriptor.c b/libusb/descriptor.c
index ce0b661..baff1b0 100644
--- a/libusb/descriptor.c
+++ b/libusb/descriptor.c
@@ -442,11 +442,11 @@ API_EXPORTED int libusb_get_device_descriptor(libusb_device *dev,
return r;
memcpy((unsigned char *) desc, raw_desc, sizeof(raw_desc));
- if (host_endian) {
- desc->bcdUSB = libusb_cpu_to_le16(desc->bcdUSB);
- desc->idVendor = libusb_cpu_to_le16(desc->idVendor);
- desc->idProduct = libusb_cpu_to_le16(desc->idProduct);
- desc->bcdDevice = libusb_cpu_to_le16(desc->bcdDevice);
+ if (!host_endian) {
+ desc->bcdUSB = libusb_le16_to_cpu(desc->bcdUSB);
+ desc->idVendor = libusb_le16_to_cpu(desc->idVendor);
+ desc->idProduct = libusb_le16_to_cpu(desc->idProduct);
+ desc->bcdDevice = libusb_le16_to_cpu(desc->bcdDevice);
}
return 0;
}