PCSC: Accept 0x67 (Wrong length) as a response to READ RECORD

It looks like some USIM cards respond with 0x67 (Wrong length) instead
of 0x6c to 00 b2 01 04 ff. This was getting rejected in
scard_get_record_len(). ETSI TS 102 221 is not very clear on this
detail, but it looks fine to accept the 0x67 error value, too, to learn
the record length.

Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2011-12-18 14:44:03 +02:00
parent 90b8fc8f4e
commit f2fe5b3663

View file

@ -812,7 +812,7 @@ static int scard_get_record_len(struct scard_data *scard, unsigned char recnum,
wpa_hexdump(MSG_DEBUG, "SCARD: file length determination response",
buf, blen);
if (blen < 2 || buf[0] != 0x6c) {
if (blen < 2 || (buf[0] != 0x6c && buf[0] != 0x67)) {
wpa_printf(MSG_DEBUG, "SCARD: unexpected response to file "
"length determination");
return -1;