diff --git a/usbutils.c b/usbutils.c index 15896150..3b324821 100644 --- a/usbutils.c +++ b/usbutils.c @@ -2307,7 +2307,7 @@ usb_bulk_transfer(struct libusb_device_handle *dev_handle, int intinfo, STATS_TIMEVAL(&tv_start); cg_rlock(&cgusb_fd_lock); - err = libusb_bulk_transfer(dev_handle, endpoint, data, length, + err = libusb_bulk_transfer(dev_handle, endpoint, buf, length, transferred, timeout); errn = errno; cg_runlock(&cgusb_fd_lock); @@ -2355,7 +2355,7 @@ usb_bulk_transfer(struct libusb_device_handle *dev_handle, int intinfo, if (err) cgpu->usbinfo.clear_fail_count++; } - if (endpoint == LIBUSB_ENDPOINT_OUT) + if ((endpoint & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_IN) memcpy(data, buf, length); return err;