aboutsummaryrefslogtreecommitdiffstats
path: root/scd/ccid-driver.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2020-09-28 06:55:44 +0000
committerNIIBE Yutaka <[email protected]>2020-09-28 06:55:44 +0000
commitd561c936a217627bc29aac628a8d01f7003dcd28 (patch)
tree9c8f34825fb2f01395b7ec21cf88c97bbd98bb9e /scd/ccid-driver.c
parentscd: Internal CCID: Handle LIBUSB_ERROR_TIMEOUT at ccid_get_atr. (diff)
downloadgnupg-d561c936a217627bc29aac628a8d01f7003dcd28.tar.gz
gnupg-d561c936a217627bc29aac628a8d01f7003dcd28.zip
scd: Internal CCID driver: Fix a failure path.
* scd/ccid-driver.c (ccid_open_usb_reader): On error, call libusb_release_interface. Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'scd/ccid-driver.c')
-rw-r--r--scd/ccid-driver.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
index 2227eed89..8995fab22 100644
--- a/scd/ccid-driver.c
+++ b/scd/ccid-driver.c
@@ -1727,6 +1727,7 @@ ccid_open_usb_reader (const char *spec_reader_name,
{
--ccid_usb_thread_is_alive;
free (rid);
+ libusb_release_interface (idev, ifc_no);
libusb_close (idev);
free (*handle);
*handle = NULL;