diff options
author | Hans de Goede <hdegoede@redhat.com> | 2011-02-09 12:46:26 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2011-06-17 10:59:26 +0200 |
commit | 5765476148dff10f3de7c8888e3eef59455a3255 (patch) | |
tree | b45da428784012c937cbd7e358e59f98ac4eac24 | |
parent | 751621e9a69cdbb43bd20f81a86c64af6436255b (diff) |
claimed_interfaces is a long so any masks should be a long too
Otherwise things will go wrong on 64 bit for interfaces >= 32 (which we
happily accept with some functions on 64 bit machines).
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | libusb/core.c | 10 | ||||
-rw-r--r-- | libusb/os/darwin_usb.c | 8 |
2 files changed, 9 insertions, 9 deletions
diff --git a/libusb/core.c b/libusb/core.c index afe9e6e..ccfaa87 100644 --- a/libusb/core.c +++ b/libusb/core.c @@ -1274,12 +1274,12 @@ int API_EXPORTED libusb_claim_interface(libusb_device_handle *dev, return LIBUSB_ERROR_INVALID_PARAM; usbi_mutex_lock(&dev->lock); - if (dev->claimed_interfaces & (1 << interface_number)) + if (dev->claimed_interfaces & (1L << interface_number)) goto out; r = usbi_backend->claim_interface(dev, interface_number); if (r == 0) - dev->claimed_interfaces |= 1 << interface_number; + dev->claimed_interfaces |= 1L << interface_number; out: usbi_mutex_unlock(&dev->lock); @@ -1311,14 +1311,14 @@ int API_EXPORTED libusb_release_interface(libusb_device_handle *dev, return LIBUSB_ERROR_INVALID_PARAM; usbi_mutex_lock(&dev->lock); - if (!(dev->claimed_interfaces & (1 << interface_number))) { + if (!(dev->claimed_interfaces & (1L << interface_number))) { r = LIBUSB_ERROR_NOT_FOUND; goto out; } r = usbi_backend->release_interface(dev, interface_number); if (r == 0) - dev->claimed_interfaces &= ~(1 << interface_number); + dev->claimed_interfaces &= ~(1L << interface_number); out: usbi_mutex_unlock(&dev->lock); @@ -1355,7 +1355,7 @@ int API_EXPORTED libusb_set_interface_alt_setting(libusb_device_handle *dev, return LIBUSB_ERROR_INVALID_PARAM; usbi_mutex_lock(&dev->lock); - if (!(dev->claimed_interfaces & (1 << interface_number))) { + if (!(dev->claimed_interfaces & (1L << interface_number))) { usbi_mutex_unlock(&dev->lock); return LIBUSB_ERROR_NOT_FOUND; } diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c index 480ec52..be9a8af 100644 --- a/libusb/os/darwin_usb.c +++ b/libusb/os/darwin_usb.c @@ -132,7 +132,7 @@ static int ep_to_pipeRef(struct libusb_device_handle *dev_handle, uint8_t ep, ui for (iface = 0 ; iface < USB_MAXINTERFACES ; iface++) { cInterface = &priv->interfaces[iface]; - if (dev_handle->claimed_interfaces & (1 << iface)) { + if (dev_handle->claimed_interfaces & (1L << iface)) { for (i = 0 ; i < cInterface->num_endpoints ; i++) { if (cInterface->endpoint_addrs[i] == ep) { *pipep = i + 1; @@ -749,7 +749,7 @@ static void darwin_close (struct libusb_device_handle *dev_handle) { /* make sure all interfaces are released */ for (i = 0 ; i < USB_MAXINTERFACES ; i++) - if (dev_handle->claimed_interfaces & (1 << i)) + if (dev_handle->claimed_interfaces & (1L << i)) libusb_release_interface (dev_handle, i); if (0 == dpriv->open_count) { @@ -803,7 +803,7 @@ static int darwin_set_configuration(struct libusb_device_handle *dev_handle, int /* Setting configuration will invalidate the interface, so we need to reclaim it. First, dispose of existing interfaces, if any. */ for (i = 0 ; i < USB_MAXINTERFACES ; i++) - if (dev_handle->claimed_interfaces & (1 << i)) + if (dev_handle->claimed_interfaces & (1L << i)) darwin_release_interface (dev_handle, i); kresult = (*(dpriv->device))->SetConfiguration (dpriv->device, config); @@ -812,7 +812,7 @@ static int darwin_set_configuration(struct libusb_device_handle *dev_handle, int /* Reclaim any interfaces. */ for (i = 0 ; i < USB_MAXINTERFACES ; i++) - if (dev_handle->claimed_interfaces & (1 << i)) + if (dev_handle->claimed_interfaces & (1L << i)) darwin_claim_interface (dev_handle, i); dpriv->active_config = config; |