]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
PCSC: Accept 0x67 (Wrong length) as a response to READ RECORD
authorJouni Malinen <j@w1.fi>
Sun, 18 Dec 2011 12:44:03 +0000 (14:44 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 18 Dec 2011 12:44:03 +0000 (14:44 +0200)
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>

src/utils/pcsc_funcs.c

index bf9f04a719b1d17f4ea95141871bb56edc8d1dd5..c36193e4fbb065de96364f091bc50f40c650eeaf 100644 (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;