summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--libusb/sync.c18
-rw-r--r--libusb/version_nano.h2
3 files changed, 12 insertions, 9 deletions
diff --git a/AUTHORS b/AUTHORS
index cb0511a..88c7ab5 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -48,4 +48,5 @@ Uri Lublin
Vasily Khoruzhick
Vitali Lovich
Xiaofan Chen
+Zoltán Kovács
Роман Донченко
diff --git a/libusb/sync.c b/libusb/sync.c
index 5033387..b9a72e4 100644
--- a/libusb/sync.c
+++ b/libusb/sync.c
@@ -106,10 +106,11 @@ int API_EXPORTED libusb_control_transfer(libusb_device_handle *dev_handle,
if (r < 0) {
if (r == LIBUSB_ERROR_INTERRUPTED)
continue;
- libusb_cancel_transfer(transfer);
- while (!completed)
- if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
- break;
+ if (libusb_cancel_transfer(transfer) == LIBUSB_SUCCESS) {
+ while (!completed)
+ if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
+ break;
+ }
libusb_free_transfer(transfer);
return r;
}
@@ -183,10 +184,11 @@ static int do_sync_bulk_transfer(struct libusb_device_handle *dev_handle,
if (r < 0) {
if (r == LIBUSB_ERROR_INTERRUPTED)
continue;
- libusb_cancel_transfer(transfer);
- while (!completed)
- if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
- break;
+ if (libusb_cancel_transfer(transfer) == LIBUSB_SUCCESS) {
+ while (!completed)
+ if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
+ break;
+ }
libusb_free_transfer(transfer);
return r;
}
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 7e52a56..7f14aa2 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 10598
+#define LIBUSB_NANO 10599