diff --git a/include/XLink/XLinkPrivateFields.h b/include/XLink/XLinkPrivateFields.h index 0e83137..441520c 100644 --- a/include/XLink/XLinkPrivateFields.h +++ b/include/XLink/XLinkPrivateFields.h @@ -15,7 +15,7 @@ #define EXTRACT_STREAM_ID(streamId) ((streamId) & STREAM_ID_MASK) #define COMBINE_IDS(streamId, linkid) \ - streamId = streamId | ((linkid & LINK_ID_MASK) << LINK_ID_SHIFT); + streamId = streamId | (((uint32_t)linkid & LINK_ID_MASK) << LINK_ID_SHIFT); // ------------------------------------ // Global fields declaration. Begin. diff --git a/src/pc/protocols/usb_host.cpp b/src/pc/protocols/usb_host.cpp index d7fde55..34d6a50 100644 --- a/src/pc/protocols/usb_host.cpp +++ b/src/pc/protocols/usb_host.cpp @@ -770,6 +770,7 @@ xLinkPlatformErrorCode_t usbLinkOpen(const char *path, libusb_device_handle*& h) uint8_t ep = 0; libusb_error libusb_rc = usb_open_device(dev, &ep, h); + libusb_unref_device(dev); if(libusb_rc == LIBUSB_SUCCESS) { return X_LINK_PLATFORM_SUCCESS; } else if(libusb_rc == LIBUSB_ERROR_ACCESS) {