RFR [7195480]: javax.smartcardio does not detect cards on Mac OS X

Valerie (Yu-Ching) Peng valerie.peng at oracle.com
Mon May 19 23:16:35 UTC 2014


Changes look fine to me.
Thanks,
Valerie


On 05/16/14 08:54, Ivan Gerasimov wrote:
> Hello!
>
> It was reported that CardTerminal.isCardPresent(), 
> CardTerminal.waitForCardAbsent(...) and 
> CardTerminal.waitForCardPresent(...) do not work correctly on Mac OS X.
> It is due to the difference in the types of the fields of 
> SCARD_READERSTATE structure used across different platforms.
>
> In addition to the field type correction, it is also needed to make 
> sure the fields are aligned correctly.
> I made sure that the total size of the structure (61 bytes) is correct 
> by requesting information about the same reader twice:
> (had to mess with sun.security.smartcardio.PCSC.SCardGetStatusChange() 
> a bit to check, but didn't include it the test).
>
> No new tests go with the fix.
> The already existing manual test 
> jdk/test/sun/security/smartcardio/TestPresent.java can be used to 
> demonstrate the bug with the current jdk.
> With the fix this test isn't failing.
>
> I assume that the correct behavior in the case of several card readers 
> can be checked with 
> jdk/test/sun/security/smartcardio/TestMultiplePresent.java, but cannot 
> check it myself as I don't currently have access to a mac comp with 
> more than one readers.
>
> Would you please help review the fix?
>
> BUGURL: https://bugs.openjdk.java.net/browse/JDK-7195480
> WEBREV: http://cr.openjdk.java.net/~igerasim/7195480/0/webrev/
>
> Sincerely yours,
> Ivan




More information about the security-dev mailing list