Core: Use USB_MAXINTERFACES rather then sizeof(claimed_interfaces)
authorHans de Goede <hdegoede@redhat.com>
Thu, 17 Feb 2011 11:35:46 +0000 (12:35 +0100)
committerPeter Stuge <peter@stuge.se>
Sun, 24 Jul 2011 21:34:58 +0000 (23:34 +0200)
claimed_interfaces is a long and thus its size differs on 32
versus 64 bits, this patch uses USB_MAXINTERFACES instead of
sizeof(claimed_interfaces) on interface number range checks
for consistent behavior independent of the arch.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
libusb/core.c

index afe9e6e..1dedb17 100644 (file)
@@ -1270,7 +1270,7 @@ int API_EXPORTED libusb_claim_interface(libusb_device_handle *dev,
        int r = 0;
 
        usbi_dbg("interface %d", interface_number);
-       if (interface_number >= sizeof(dev->claimed_interfaces) * 8)
+       if (interface_number >= USB_MAXINTERFACES)
                return LIBUSB_ERROR_INVALID_PARAM;
 
        usbi_mutex_lock(&dev->lock);
@@ -1307,7 +1307,7 @@ int API_EXPORTED libusb_release_interface(libusb_device_handle *dev,
        int r;
 
        usbi_dbg("interface %d", interface_number);
-       if (interface_number >= sizeof(dev->claimed_interfaces) * 8)
+       if (interface_number >= USB_MAXINTERFACES)
                return LIBUSB_ERROR_INVALID_PARAM;
 
        usbi_mutex_lock(&dev->lock);
@@ -1351,7 +1351,7 @@ int API_EXPORTED libusb_set_interface_alt_setting(libusb_device_handle *dev,
 {
        usbi_dbg("interface %d altsetting %d",
                interface_number, alternate_setting);
-       if (interface_number >= sizeof(dev->claimed_interfaces) * 8)
+       if (interface_number >= USB_MAXINTERFACES)
                return LIBUSB_ERROR_INVALID_PARAM;
 
        usbi_mutex_lock(&dev->lock);