diff --git a/src/libopensc/reader-pcsc.c b/src/libopensc/reader-pcsc.c index a1deb779bb..9599b7ac27 100644 --- a/src/libopensc/reader-pcsc.c +++ b/src/libopensc/reader-pcsc.c @@ -239,6 +239,7 @@ static int pcsc_internal_transmit(sc_reader_t *reader, SCARD_IO_REQUEST sSendPci, sRecvPci; DWORD dwSendLength, dwRecvLength; LONG rv = SCARD_E_INVALID_VALUE; + int r; SCARDHANDLE card; LOG_FUNC_CALLED(reader->ctx); @@ -276,15 +277,13 @@ static int pcsc_internal_transmit(sc_reader_t *reader, case SCARD_E_INVALID_HANDLE: case SCARD_E_INVALID_VALUE: case SCARD_E_READER_UNAVAILABLE: - LOG_TEST_RET(reader->ctx, - pcsc_connect(reader), - "Could not connect to card after reattached reader."); + r = pcsc_connect(reader); + LOG_TEST_RET(reader->ctx, r, "Could not connect to card after reattached reader."); /* return failure so that upper layers will be notified */ return SC_ERROR_READER_REATTACHED; case SCARD_W_RESET_CARD: - LOG_TEST_RET(reader->ctx, - pcsc_reconnect(reader, SCARD_LEAVE_CARD), - "Could not reconnect to card after reattached reader."); + r = pcsc_reconnect(reader, SCARD_LEAVE_CARD); + LOG_TEST_RET(reader->ctx, r, "Could not reconnect to card after reattached reader."); /* return failure so that upper layers will be notified */ return SC_ERROR_CARD_RESET; default: @@ -684,6 +683,7 @@ static int pcsc_disconnect(sc_reader_t * reader) static int pcsc_lock(sc_reader_t *reader) { LONG rv; + int r; struct pcsc_private_data *priv = reader->drv_data; if (priv->gpriv->cardmod) @@ -705,15 +705,13 @@ static int pcsc_lock(sc_reader_t *reader) /* This is returned in case of the same reader was re-attached */ case SCARD_E_INVALID_HANDLE: case SCARD_E_READER_UNAVAILABLE: - LOG_TEST_RET(reader->ctx, - pcsc_connect(reader), - "Could not connect to card after reattached reader."); + r = pcsc_connect(reader); + LOG_TEST_RET(reader->ctx, r, "Could not connect to card after reattached reader."); /* return failure so that upper layers will be notified and try to lock again */ return SC_ERROR_READER_REATTACHED; case SCARD_W_RESET_CARD: - LOG_TEST_RET(reader->ctx, - pcsc_reconnect(reader, SCARD_LEAVE_CARD), - "Could not reconnect to card after reattached reader."); + r = pcsc_reconnect(reader, SCARD_LEAVE_CARD); + LOG_TEST_RET(reader->ctx, r, "Could not reconnect to card after reattached reader."); /* return failure so that upper layers will be notified and try to lock again */ return SC_ERROR_CARD_RESET; case SCARD_S_SUCCESS: