[Pkg-gnupg-commit] [gnupg2] 94/116: scd: Fix INTERRUPT transfer.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Tue Jan 24 04:40:58 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 21c9ebb908c2ad2e322e7a13e59e5880494c4d67
Author: NIIBE Yutaka <gniibe at fsij.org>
Date:   Mon Jan 23 16:12:41 2017 +0900

    scd: Fix INTERRUPT transfer.
    
    * scd/ccid-driver.c (find_endpoint): Don't return Bulk endpoint as
    Interrupt endpoint.
    (ccid_poll): Call libusb_interrupt_transfer.
    
    Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
---
 scd/ccid-driver.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
index 5e02628..b7f97ed 100644
--- a/scd/ccid-driver.c
+++ b/scd/ccid-driver.c
@@ -1100,8 +1100,9 @@ find_endpoint (const struct libusb_interface_descriptor *ifcdesc, int mode)
                    == LIBUSB_TRANSFER_TYPE_INTERRUPT)
                && (ep->bEndpointAddress & 0x80))
         return ep->bEndpointAddress;
-      else if (((ep->bmAttributes & LIBUSB_TRANSFER_TYPE_MASK)
-                == LIBUSB_TRANSFER_TYPE_BULK)
+      else if ((mode == 0 || mode == 1)
+               && ((ep->bmAttributes & LIBUSB_TRANSFER_TYPE_MASK)
+                   == LIBUSB_TRANSFER_TYPE_BULK)
                && (ep->bEndpointAddress & 0x80) == want_bulk_in)
         return ep->bEndpointAddress;
     }
@@ -2459,9 +2460,9 @@ ccid_poll (ccid_driver_t handle)
 
   if (handle->idev)
     {
-      rc = libusb_bulk_transfer (handle->idev, handle->ep_intr,
-                                 (char*)msg, sizeof msg, &msglen,
-                                 0 /* ms timeout */ );
+      rc = libusb_interrupt_transfer (handle->idev, handle->ep_intr,
+                                      (char*)msg, sizeof msg, &msglen,
+                                      0 /* ms timeout */ );
       if (rc == LIBUSB_ERROR_TIMEOUT)
         return 0;
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list