Hi! First of all I must thank you for an fscking excellent piece of work with the 1.0 stuff!
I have some problems with smartcard redirection using git latest as of today (2011 Nov 21) trying to get it to work with an Omnikey CardMan 3821 and Swedish Nordea BankID. BankID uses a background application "BankID Security Application" (also known as Nexus Personal). IF this application is running and a card is inserted, or if the card is already inserted when the session is started, xfreerdp crashes. The output is (this session with the card inserted before starting the session): ==================== loading plugin rdpdr connected to 192.168.0.21:3389 Password: registered device #1: SCARD (type=32 id=1) registered device #1: SCARD (type=32 id=1) registered device #1: SCARD (type=32 id=1) 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 28 00 00 00 01 10 08 00 cc cc cc cc 04 00 00 00 (............... 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0030 00 00 00 00 00 00 00 00 00 00 00 00 ............ 0000 72 44 43 49 01 00 00 00 00 00 00 00 00 00 00 00 rDCI............ 0010 28 00 00 00 01 10 08 00 cc cc cc cc 04 00 00 00 (............... 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0030 00 00 00 00 00 00 00 00 00 00 00 00 ............ 0000 72 44 43 49 01 00 00 00 00 00 00 00 00 00 00 00 rDCI............ 0010 28 00 00 00 01 10 08 00 cc cc cc cc 0c 00 00 00 (............... 0020 00 00 00 00 00 00 00 00 04 00 00 00 ff ff ff ff ................ 0030 04 00 00 00 a5 c2 03 01 00 00 00 00 ............ 0000 72 44 43 49 01 00 00 00 00 00 00 00 00 00 00 00 rDCI............ 0010 60 00 00 00 01 10 08 00 cc cc cc cc 40 00 00 00 `...........@... 0020 00 00 00 00 00 00 00 00 38 00 00 00 50 06 76 01 ........8...P.v. 0030 38 00 00 00 4f 00 6d 00 6e 00 69 00 4b 00 65 00 8...O.m.n.i.K.e. 0040 79 00 20 00 43 00 61 00 72 00 64 00 4d 00 61 00 y. .C.a.r.d.M.a. 0050 6e 00 20 00 33 00 38 00 32 00 31 00 20 00 30 00 n. .3.8.2.1. .0. 0060 30 00 20 00 30 00 30 00 00 00 00 00 00 00 00 00 0. .0.0......... 0070 00 00 00 00 .... DBG_SCARD handle_GetStatusChange (458): context: 0x0103c2a5, timeout: 0xffffffff, count: 2 DBG_SCARD handle_GetStatusChange (499): "\\?PnP?\Notification" DBG_SCARD handle_GetStatusChange (502): user: 0x00000000, state: 0x00000000, event: 0x00000000 DBG_SCARD handle_GetStatusChange (499): "OmniKey CardMan 3821 00 00" DBG_SCARD handle_GetStatusChange (502): user: 0x00000000, state: 0x00000010, event: 0x00000000 DBG_SCARD handle_GetStatusChange (518): Success DBG_SCARD handle_GetStatusChange (528): "\\?PnP?\Notification" DBG_SCARD handle_GetStatusChange (531): user: 0x00000000, state: 0x00000001, event: 0x00000000 DBG_SCARD handle_GetStatusChange (528): "OmniKey CardMan 3821 00 00" DBG_SCARD handle_GetStatusChange (531): user: 0x00000000, state: 0x00000010, event: 0x00000122 0000 72 44 43 49 01 00 00 00 00 00 00 00 00 00 00 00 rDCI............ 0010 80 00 00 00 01 10 08 00 cc cc cc cc 68 00 00 00 ............h... 0020 00 00 00 00 00 00 00 00 02 00 00 00 d8 4d 08 00 .............M.. 0030 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................ 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0060 00 00 00 00 10 00 00 00 22 01 00 00 16 00 00 00 ........"....... 0070 3b 9f 94 80 1f c3 00 68 11 44 05 01 46 49 53 45 ;......h.D..FISE 0080 31 c8 07 90 00 19 00 00 00 00 00 00 00 00 00 00 1............... 0090 00 00 00 00 .... DBG_SCARD handle_GetStatusChange (458): context: 0x0103c2a5, timeout: 0xffffffff, count: 2 DBG_SCARD handle_GetStatusChange (499): "\\?PnP?\Notification" DBG_SCARD handle_GetStatusChange (502): user: 0x00000000, state: 0x00000000, event: 0x00000000 DBG_SCARD handle_GetStatusChange (499): "OmniKey CardMan 3821 00 00" DBG_SCARD handle_GetStatusChange (502): user: 0x00000000, state: 0x00000122, event: 0x00000000 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 28 00 00 00 01 10 08 00 cc cc cc cc 0c 00 00 00 (............... 0020 00 00 00 00 00 00 00 00 04 00 00 00 ff ff ff ff ................ 0030 04 00 00 00 ed 8d 03 01 00 00 00 00 ............ 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 40 00 00 00 01 10 08 00 cc cc cc cc 28 00 00 00 @...........(... 0020 00 00 00 00 00 00 00 00 1c 00 00 00 50 06 76 01 ............P.v. 0030 1c 00 00 00 4f 6d 6e 69 4b 65 79 20 43 61 72 64 ....OmniKey Card 0040 4d 61 6e 20 33 38 32 31 20 30 30 20 30 30 00 00 Man 3821 00 00.. 0050 00 00 00 00 .... 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 40 00 00 00 01 10 08 00 cc cc cc cc 28 00 00 00 @...........(... 0020 00 00 00 00 00 00 00 00 1c 00 00 00 50 06 76 01 ............P.v. 0030 1c 00 00 00 4f 6d 6e 69 4b 65 79 20 43 61 72 64 ....OmniKey Card 0040 4d 61 6e 20 33 38 32 31 20 30 30 20 30 30 00 00 Man 3821 00 00.. 0050 00 00 00 00 .... 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 28 00 00 00 01 10 08 00 cc cc cc cc 0c 00 00 00 (............... 0020 00 00 00 00 00 00 00 00 04 00 00 00 ff ff ff ff ................ 0030 04 00 00 00 40 4e 03 01 00 00 00 00 ....@N...... DBG_SCARD handle_GetStatusChange (458): context: 0x01038ded, timeout: 0x00002710, count: 1 DBG_SCARD handle_GetStatusChange (499): "OmniKey CardMan 3821 00 00" DBG_SCARD handle_GetStatusChange (502): user: 0x00000000, state: 0x00000000, event: 0x00000000 DBG_SCARD handle_GetStatusChange (518): Success DBG_SCARD handle_GetStatusChange (528): "OmniKey CardMan 3821 00 00" DBG_SCARD handle_GetStatusChange (531): user: 0x00000000, state: 0x00000000, event: 0x00000122 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 50 00 00 00 01 10 08 00 cc cc cc cc 38 00 00 00 P...........8... 0020 00 00 00 00 00 00 00 00 01 00 00 00 d8 4d 08 00 .............M.. 0030 01 00 00 00 00 00 00 00 22 01 00 00 16 00 00 00 ........"....... 0040 3b 9f 94 80 1f c3 00 68 11 44 05 01 46 49 53 45 ;......h.D..FISE 0050 31 c8 07 90 00 19 00 00 00 00 00 00 00 00 00 00 1............... 0060 00 00 00 00 .... 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 40 00 00 00 01 10 08 00 cc cc cc cc 28 00 00 00 @...........(... 0020 00 00 00 00 00 00 00 00 1c 00 00 00 50 06 76 01 ............P.v. 0030 1c 00 00 00 4f 6d 6e 69 4b 65 79 20 43 61 72 64 ....OmniKey Card 0040 4d 61 6e 20 33 38 32 31 20 30 30 20 30 30 00 00 Man 3821 00 00.. 0050 00 00 00 00 .... 0000 72 44 43 49 01 00 00 00 01 00 00 00 00 00 00 00 rDCI............ 0010 40 00 00 00 01 10 08 00 cc cc cc cc 28 00 00 00 @...........(... 0020 00 00 00 00 00 00 00 00 1c 00 00 00 50 06 76 01 ............P.v. 0030 1c 00 00 00 4f 6d 6e 69 4b 65 79 20 43 61 72 64 ....OmniKey Card 0040 4d 61 6e 20 33 38 32 31 20 30 30 20 30 30 00 00 Man 3821 00 00.. 0050 00 00 00 00 .... DBG_SCARD handle_GetStatusChange (458): context: 0x01038ded, timeout: 0x00002710, count: 1 DBG_SCARD handle_GetStatusChange (499): "OmniKey CardMan 3821 00 00" DBG_SCARD handle_GetStatusChange (502): user: 0x00000000, state: 0x00000122, event: 0x00000000 DBG_SCARD sc_input_reader_name (235): datalength 27 DBG_SCARD handle_Connect (594): (context: 0x01034e40, share: 0x00000002, proto: 0x00000003, reader: "OmniKey CardMan 3821 00 00") DBG_SCARD handle_Connect (602): Success 0x0001eb44 0000 72 44 43 49 01 00 00 00 02 00 00 00 00 00 00 00 rDCI............ 0010 50 00 00 00 01 10 08 00 cc cc cc cc 38 00 00 00 P...........8... 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0030 04 00 00 00 34 ff 6c 01 01 00 00 00 04 00 00 00 ....4.l......... 0040 44 eb 01 00 00 00 00 00 00 00 00 00 00 00 00 00 D............... 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0060 00 00 00 00 .... DBG_SCARD handle_BeginTransaction (705): Success hcard: 0x0001eb44 0000 72 44 43 49 01 00 00 00 02 00 00 00 00 00 00 00 rDCI............ 0010 20 00 00 00 01 10 08 00 cc cc cc cc 00 00 00 00 ............... 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0030 00 00 00 00 .... DBG_SCARD handle_GetAttrib (1103): hcard: 0x0001eb44, attrib: 0x00010102 (0 bytes) DBG_SCARD handle_GetAttrib (1136): Failure: Insufficient buffer. (0x80100008) *** glibc detected *** /home/palm/opt/FreeRDP/bin/xfreerdp: free(): invalid pointer: 0xb4afc2f8 *** ======= Backtrace: ========= /lib/libc.so.6[0xc85fb6] /home/palm/opt/FreeRDP/lib/freerdp/scard.so(scard_device_control+0x65a)[0xf53b9a] /home/palm/opt/FreeRDP/lib/freerdp/scard.so(+0xf8c)[0xf50f8c] /lib/libpthread.so.0[0xdd4e99] /lib/libc.so.6(clone+0x5e)[0xceed2e] ======= Memory map: ======== 00110000-00112000 r-xp 00000000 fd:04 180401 /home/palm/opt/FreeRDP/lib/libfreerdp-rail.so.1.0.0 00112000-00113000 rw-p 00002000 fd:04 180401 /home/palm/opt/FreeRDP/lib/libfreerdp-rail.so.1.0.0 00113000-00127000 r-xp 00000000 fd:00 230543 /lib/libz.so.1.2.5 00127000-00128000 rw-p 00013000 fd:00 230543 /lib/libz.so.1.2.5 00128000-0014c000 r-xp 00000000 fd:00 497321 /usr/lib/libxkbfile.so.1.0.2 0014c000-0014d000 rw-p 00024000 fd:00 497321 /usr/lib/libxkbfile.so.1.0.2 0014d000-00169000 r-xp 00000000 fd:00 230541 /lib/libgcc_s-4.5.1-20100924.so.1 00169000-0016a000 rw-p 0001b000 fd:00 230541 /lib/libgcc_s-4.5.1-20100924.so.1 0016a000-0016c000 r-xp 00000000 fd:04 551711 /home/palm/opt/FreeRDP/lib/freerdp/rdpdr.so 0016c000-0016d000 rw-p 00001000 fd:04 551711 /home/palm/opt/FreeRDP/lib/freerdp/rdpdr.so 0017e000-00182000 r-xp 00000000 fd:00 493306 /usr/lib/libXv.so.1.0.0 00182000-00183000 rw-p 00003000 fd:00 493306 /usr/lib/libXv.so.1.0.0 00183000-001a0000 r-xp 00000000 fd:00 230552 /lib/libselinux.so.1 001a0000-001a1000 r--p 0001c000 fd:00 230552 /lib/libselinux.so.1 001a1000-001a2000 rw-p 0001d000 fd:00 230552 /lib/libselinux.so.1 001c0000-001c1000 r-xp 00000000 00:00 0 [vdso] 00209000-00216000 r-xp 00000000 fd:04 180407 /home/palm/opt/FreeRDP/lib/libfreerdp-codec.so.1.0.0 00216000-00217000 rw-p 0000c000 fd:04 180407 /home/palm/opt/FreeRDP/lib/libfreerdp-codec.so.1.0.0 00268000-0027e000 r-xp 00000000 fd:00 230546 /lib/libresolv-2.13.so 0027e000-0027f000 r--p 00015000 fd:00 230546 /lib/libresolv-2.13.so 0027f000-00280000 rw-p 00016000 fd:00 230546 /lib/libresolv-2.13.so 00280000-00282000 rw-p 00000000 00:00 0 002aa000-002ae000 r-xp 00000000 fd:04 180404 /home/palm/opt/FreeRDP/lib/libfreerdp-cache.so.1.0.0 002ae000-002af000 rw-p 00003000 fd:04 180404 /home/palm/opt/FreeRDP/lib/libfreerdp-cache.so.1.0.0 002dd000-002df000 r-xp 00000000 fd:00 492456 /usr/lib/libXau.so.6.0.0 002df000-002e0000 rw-p 00001000 fd:00 492456 /usr/lib/libXau.so.6.0.0 002e2000-002ff000 r-xp 00000000 fd:00 492466 /usr/lib/libxcb.so.1.1.0 002ff000-00300000 rw-p 0001c000 fd:00 492466 /usr/lib/libxcb.so.1.1.0 00302000-00435000 r-xp 00000000 fd:00 492493 /usr/lib/libX11.so.6.3.0 00435000-00439000 rw-p 00132000 fd:00 492493 /usr/lib/libX11.so.6.3.0 00465000-00475000 r-xp 00000000 fd:00 492521 /usr/lib/libXext.so.6.4.0 00475000-00476000 rw-p 00010000 fd:00 492521 /usr/lib/libXext.so.6.4.0 0057e000-00586000 r-xp 00000000 fd:00 492736 /usr/lib/libXrender.so.1.3.0 00586000-00587000 rw-p 00008000 fd:00 492736 /usr/lib/libXrender.so.1.3.0 00589000-0058d000 r-xp 00000000 fd:00 492768 /usr/lib/libXfixes.so.3.1.0 0058d000-0058e000 rw-p 00003000 fd:00 492768 /usr/lib/libXfixes.so.3.1.0 005a0000-005a2000 r-xp 00000000 fd:00 492778 /usr/lib/libXinerama.so.1.0.0 005a2000-005a3000 rw-p 00001000 fd:00 492778 /usr/lib/libXinerama.so.1.0.0 005a5000-005ae000 r-xp 00000000 fd:00 492776 /usr/lib/libXcursor.so.1.0.2 005ae000-005af000 rw-p 00008000 fd:00 492776 /usr/lib/libXcursor.so.1.0.2 005c0000-005ca000 r-xp 00000000 fd:00 498858 /usr/lib/libpcsclite.so.1.0.0 005ca000-005cb000 rw-p 0000a000 fd:00 498858 /usr/lib/libpcsclite.so.1.0.0 005e4000-005f1000 r-xp 00000000 fd:04 180398 /home/palm/opt/FreeRDP/lib/libfreerdp-gdi.so.1.0.0 005f1000-005f2000 rw-p 0000d000 fd:04 180398 /home/palm/opt/FreeRDP/lib/libfreerdp-gdi.so.1.0.0 00761000-00764000 r-xp 00000000 fd:04 180410 /home/palm/opt/FreeRDP/lib/libfreerdp-channels.so.1.0.0 00764000-00765000 rw-p 00002000 fd:04 180410 /home/palm/opt/FreeRDP/lib/libfreerdp-channels.so.1.0.0 0092a000-00962000 r-xp 00000000 fd:04 180413 /home/palm/opt/FreeRDP/lib/libfreerdp-core.so.1.0.0 00962000-00969000 rw-p 00037000 fd:04 180413 /home/palm/opt/FreeRDP/lib/libfreerdp-core.so.1.0.0 00a96000-00aa0000 r-xp 00000000 fd:04 180391 /home/palm/opt/FreeRDP/lib/libfreerdp-utils.so.1.0.0 00aa0000-00aa1000 rw-p 0000a000 fd:04 180391 /home/palm/opt/FreeRDP/lib/libfreerdp-utils.so.1.0.0 00aef000-00af2000 r-xp 00000000 fd:00 230555 /lib/libcom_err.so.2.1 00af2000-00af3000 rw-p 00002000 fd:00 230555 /lib/libcom_err.so.2.1 00af5000-00afe000 r-xp 00000000 fd:00 382578 /lib/libkrb5support.so.0.1 00afe000-00aff000 rw-p 00008000 fd:00 382578 /lib/libkrb5support.so.0.1 00b01000-00b38000 r-xp 00000000 fd:00 382575 /lib/libgssapi_krb5.so.2.2 00b38000-00b39000 rw-p 00036000 fd:00 382575 /lib/libgssapi_krb5.so.2.2 00b3b000-00b61000 r-xp 00000000 fd:00 382577 /lib/libk5crypto.so.3.1 00b61000-00b62000 rw-p 00026000 fd:00 382577 /lib/libk5crypto.so.3.1 00b64000-00b66000 r-xp 00000000 fd:00 230551 /lib/libkeyutils-1.2.so 00b66000-00b67000 rw-p 00001000 fd:00 230551 /lib/libkeyutils-1.2.so 00b69000-00bbd000 r-xp 00000000 fd:00 496852 /usr/lib/libssl.so.1.0.0e 00bbd000-00bc1000 rw-p 00054000 fd:00 496852 /usr/lib/libssl.so.1.0.0e 00bf6000-00c13000 r-xp 00000000 fd:00 230522 /lib/ld-2.13.so 00c13000-00c14000 r--p 0001c000 fd:00 230522 /lib/ld-2.13.so 00c14000-00c15000 rw-p 0001d000 fd:00 230522 /lib/ld-2.13.so 00c17000-00d9a000 r-xp 00000000 fd:00 230529 /lib/libc-2.13.so 00d9a000-00d9b000 ---p 00183000 fd:00 230529 /lib/libc-2.13.so 00d9b000-00d9d000 r--p 00183000 fd:00 230529 /lib/libc-2.13.so 00d9d000-00d9e000 rw-p 00185000 fd:00 230529 /lib/libc-2.13.so 00d9e000-00da1000 rw-p 00000000 00:00 0 00dcf000-00de6000 r-xp 00000000 fd:00 230533 /lib/libpthread-2.13.so 00de6000-00de7000 r--p 00016000 fd:00 230533 /lib/libpthread-2.13.so 00de7000-00de8000 rw-p 00017000 fd:00 230533 /lib/libpthread-2.13.so 00de8000-00dea000 rw-p 00000000 00:00 0 00dec000-00def000 r-xp 00000000 fd:00 230540 /lib/libdl-2.13.so 00def000-00df0000 r--p 00002000 fd:00 230540 /lib/libdl-2.13.so 00df0000-00df1000 rw-p 00003000 fd:00 230540 /lib/libdl-2.13.so 00e67000-00e70000 r-xp 00000000 fd:04 180395 /home/palm/opt/FreeRDP/lib/libfreerdp-kbd.so.1.0.0 00e70000-00e76000 rw-p 00008000 fd:04 180395 /home/palm/opt/FreeRDP/lib/libfreerdp-kbd.so.1.0.0 00f50000-00f57000 r-xp 00000000 fd:04 551716 /home/palm/opt/FreeRDP/lib/freerdp/scard.so 00f57000-00f58000 rw-p 00006000 fd:04 551716 /home/palm/opt/FreeRDP/lib/freerdp/scard.so 03230000-032fb000 r-xp 00000000 fd:00 382573 /lib/libkrb5.so.3.3/home/palm/bin/vm1: line 4: 9895 Aborted (core dumped) LD_LIBRARY_PATH=$FREERDP_HOME/lib $FREERDP_HOME/bin/xfreerdp --plugin rdpdr --data scard:scard -- -k SV -x a7 -g 1500x900 -u "$USERNAME" $HOST ==================== BTW, the current git fails to compile with WITH_DEBUG_SCARD without some ajustments in scard_operations.c: ==================== [ 85%] Building C object channels/rdpdr/smartcard/CMakeFiles/scard.dir/scard_operations.c.o /tmp/FreeRDP/channels/rdpdr/smartcard/scard_operations.c: In function ‘handle_ListReaders’: /tmp/FreeRDP/channels/rdpdr/smartcard/scard_operations.c:390:118: error: ‘cchReaders’ undeclared (first use in this function) /tmp/FreeRDP/channels/rdpdr/smartcard/scard_operations.c:390:118: note: each undeclared identifier is reported only once for each function it appears in make[2]: *** [channels/rdpdr/smartcard/CMakeFiles/scard.dir/scard_operations.c.o] Error 1 make[1]: *** [channels/rdpdr/smartcard/CMakeFiles/scard.dir/all] Error 2 make: *** [all] Error 2 ==================== Regards, -- Christer Palm ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d _______________________________________________ Freerdp-devel mailing list Freerdp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freerdp-devel