2010/6/29 Reinhard Steiner <[email protected]>: > Hello, Hi,
> It seems that there is an issue in pcsc-lite when using transactions in > multiple threads. It is possible to destroy a transaction of another card > handle. > This was tested with pcsc-lite 1.5.3 and 1.6.1. > > See the following pseudo calls (connect to the same smart card): > > Thread1: > - SCardEstablishContext (ctx1) > - SCardConnect (hcard1) > > Thread2: > - SCardEstablishContext (ctx2) > - SCardConnect (hcard2) > - SCardBeginTransaction (hcard2) > > Thread1: > - SCardDisconnect (hcard1, SCARD_LEAVE_CARD) -> returns > SCARD_E_SHARING_VIOLATION (this is the first error, there should be no > sharing violation when using SCARD_LEAVE_CARD. This works fine on the > Windows PCSC) > - SCardReleaseContext (ctx1) -> Releases the context. This context owns the > card handle hcard1 which could not be disconnected due to the sharing > violation. But during cleanup of this handle, it destroys the transaction of > hcard2. > > Thread2: > - SCardTransmit (hcard2) -> SCARD_E_SHARING_VIOLATION -> expected would be > that this call works These problems should be fixed in revisions 5572 and 5574. Can you use the pcsc-lite snapshot available at [1] and confirm the problems you had are now solved? And sorry for the delay. 8 months to fix a bug is not nice. Bye [1] http://ludovic.rousseau.free.fr/softwares/pcsc-lite/ -- Dr. Ludovic Rousseau _______________________________________________ Muscle mailing list [email protected] http://lists.drizzle.com/mailman/listinfo/muscle
