Add length check to have compatible with R502

improve the code, to have compatible with OEM R502 firmware.
This commit is contained in:
hongbin@ftsafe.com 2020-06-22 14:33:15 +08:00
parent b02f94d7da
commit 435e2ffc81

View file

@ -143,8 +143,14 @@ static int pcsc_transmit(struct nfc_device *pnd, const uint8_t *tx, const size_t
DWORD dw_rx_len = *rx_len; DWORD dw_rx_len = *rx_len;
//in libfreefare, tx_len = 1, and it leads to 0x80100008 error, with PC/SC reader, the input tx_len at least two bytes for the SW value //in libfreefare, tx_len = 1, and it leads to 0x80100008 error, with PC/SC reader, the input tx_len at least two bytes for the SW value
//so if found the reader is Feitian reader, we set to 2 //so if found the reader is Feitian reader, we set to 2
if (dw_rx_len == 1 && is_pcsc_reader_vendor_feitian(pnd)) { if (is_pcsc_reader_vendor_feitian(pnd))
{
if (dw_rx_len == 1)
{
dw_rx_len = 2; dw_rx_len = 2;
} else {
dw_rx_len += 2;//in libfreefare, some data length send not include sw1 and sw2, so add it.
}
} }
LOG_HEX(NFC_LOG_GROUP_COM, "TX", tx, tx_len); LOG_HEX(NFC_LOG_GROUP_COM, "TX", tx, tx_len);