Core: fix bug in libusb_has_capability()
authorLudovic Rousseau <ludovic.rousseau+github@gmail.com>
Thu, 4 Apr 2013 16:08:39 +0000 (18:08 +0200)
committerLudovic Rousseau <ludovic.rousseau+github@gmail.com>
Thu, 4 Apr 2013 16:08:39 +0000 (18:08 +0200)
The problem was detected by clang on Mac OS X:
warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]
note: use '&' for a bitwise operation

We want to use a bitwise operation and not a logical operation.

libusb/core.c
libusb/version_nano.h

index e2da1ea..5948689 100644 (file)
@@ -1752,9 +1752,9 @@ int API_EXPORTED libusb_has_capability(uint32_t capability)
        case LIBUSB_CAP_HAS_CAPABILITY:
                return 1;
        case LIBUSB_CAP_HAS_HID_ACCESS:
-               return (usbi_backend->caps && USBI_CAP_HAS_HID_ACCESS);
+               return (usbi_backend->caps & USBI_CAP_HAS_HID_ACCESS);
        case LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER:
-               return (usbi_backend->caps && USBI_CAP_SUPPORTS_DETACH_KERNEL_DRIVER);
+               return (usbi_backend->caps & USBI_CAP_SUPPORTS_DETACH_KERNEL_DRIVER);
        }
        return 0;
 }
index c366ce0..b2dd2b4 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 10638
+#define LIBUSB_NANO 10639