From 3d952a2fe5da9d84c20d3debdcc1e425b08781c6 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 27 Jan 2016 14:31:13 +0100 Subject: scd: Fix size_t/int mismatch in libusb * scd/ccid-driver.c (bulk_in, abort_cmd, ccid_poll): Change msglen to int. -- Signed-off-by: Werner Koch --- scd/ccid-driver.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c index 4d83b1fee..87cec3296 100644 --- a/scd/ccid-driver.c +++ b/scd/ccid-driver.c @@ -1952,7 +1952,7 @@ bulk_in (ccid_driver_t handle, unsigned char *buffer, size_t length, int no_debug) { int rc; - size_t msglen; + int msglen; int eagain_retries = 0; /* Fixme: The next line for the current Valgrind without support @@ -1973,6 +1973,8 @@ bulk_in (ccid_driver_t handle, unsigned char *buffer, size_t length, } return CCID_DRIVER_ERR_CARD_IO_ERROR; } + if (msglen < 0) + return CCID_DRIVER_ERR_INV_VALUE; /* Faulty libusb. */ *nread = msglen; } else @@ -2081,7 +2083,7 @@ abort_cmd (ccid_driver_t handle, int seqno) int rc; char dummybuf[8]; unsigned char msg[100]; - size_t msglen; + int msglen; if (!handle->idev) { @@ -2252,7 +2254,7 @@ ccid_poll (ccid_driver_t handle) { int rc; unsigned char msg[10]; - size_t msglen; + int msglen; int i, j; if (handle->idev) -- cgit v1.2.3