Il giorno dom, 03/01/2016 alle 20.33 +0100, Ludovic Rousseau ha
scritto:
> I guess your problem comes from the ACS driver.
> 
> Try to run pcscd inside gdb to generate a backtrace.
> Do something like:
> $ sudo gdb /usr/sbin/pcscd
> (gdb) set args -dfa
> (gdb) run
> 
> then start opensc-tool
> pcscd should crash
> 
> in gdb use:
> (gdb) backtrace
> 

Yes, you are right: the crash is in the IFD handler.

For the records, here the backtrace:

#0  __memcpy_sse2_unaligned () at 
../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:36
#1  0x00007ffff720c3ad in T1_ExchangeData () from 
/usr/lib/pcsc/drivers/acsAcr30.bundle/Contents/Linux/acsAcr30
#2  0x00007ffff720c78d in IFDHTransmitToICC () from 
/usr/lib/pcsc/drivers/acsAcr30.bundle/Contents/Linux/acsAcr30
#3  0x00000000004073d5 in IFDTransmit (rContext=0x61f010, pioTxPci=..., 
pucTxBuffer=pucTxBuffer@entry=0x7ffff5f9aeb0 "", 
dwTxLength=dwTxLength@entry=20, 
    pucRxBuffer=pucRxBuffer@entry=0x7ffff5faaec0 "", 
pdwRxLength=0x7ffff5f9aca8, pioRxPci=0x7ffff5f9acb0) at ifdwrapper.c:530
#4  0x0000000000411563 in SCardTransmit (hCard=<optimized out>, 
pioSendPci=pioSendPci@entry=0x7ffff5f9ad50, 
pbSendBuffer=pbSendBuffer@entry=0x7ffff5f9aeb0 "", 
    cbSendLength=20, pioRecvPci=pioRecvPci@entry=0x7ffff5f9ad60, 
pbRecvBuffer=pbRecvBuffer@entry=0x7ffff5faaec0 "", 
pcbRecvLength=0x7ffff5f9ad38) at winscard.c:1617
#5  0x0000000000412de1 in ContextThread (newContext=0x62fea0) at 
winscard_svc.c:641
#6  0x00007ffff77b9284 in start_thread (arg=0x7ffff5fbb700) at 
pthread_create.c:333
#7  0x00007ffff74f674d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:109

I cannot fix it, regrettably I do not have enough time to learn
everything needed... :) It is a pity, though, because the driver has
been written by David Corcoran, a name I read often in pcsc-lite
source: it could have been a device more, just like ACR38U.

So, sorry for the noise, feel free to close the (non-)bug.

Thanks for your support and your work.

--
Alessio Gaeta

Reply via email to