--- src/lsnfc.c (revision 1072)
+++ src/lsnfc.c (working copy)
@@ -76,6 +76,7 @@
{
uint8_t abtCmd[2];
uint8_t abtRx[265];
+ size_t szRxLen;
int res = 0;
abtCmd[0] = 0x1A; // MIFARE UltralightC Auth command
@@ -87,7 +88,8 @@
};
if ((res = nfc_initiator_select_passive_target(pnd, nm, nai.abtUid, nai.szUidLen, NULL)) >= 0) {
nfc_device_set_property_bool(pnd, NP_EASY_FRAMING, false);
- if ((res = nfc_initiator_transceive_bytes(pnd, abtCmd, sizeof(abtCmd), abtRx, sizeof(abtRx), 0)) >= 0) {
+ szRxLen = sizeof(abtRx);
+ if ((res = nfc_initiator_transceive_bytes(pnd, abtCmd, sizeof(abtCmd), abtRx, &szRxLen, 0)) >= 0) {
// AUTH step1 command success, so it's a Ultralight C
nfc_device_set_property_bool(pnd, NP_EASY_FRAMING, true);
nfc_initiator_deselect_target(pnd);
@@ -115,6 +117,7 @@
{
uint8_t abtCmd[] = { 0x60 }; // MIFARE DESFire GetVersion command
uint8_t abtRx[265];
+ size_t szRxLen;
uint8_t abtDESFireVersion[14];
char *res = NULL;
int nfcRes = 0;
@@ -124,12 +127,14 @@
.nbr = NBR_106
};
if ((nfcRes = nfc_initiator_select_passive_target(pnd, nm, nai.abtUid, nai.szUidLen, NULL)) >= 0) {
- if ((nfcRes = nfc_initiator_transceive_bytes(pnd, abtCmd, sizeof(abtCmd), abtRx, sizeof(abtRx), 0)) >= 0) {
+ szRxLen = sizeof(abtRx);
+ if ((nfcRes = nfc_initiator_transceive_bytes(pnd, abtCmd, sizeof(abtCmd), abtRx, &szRxLen, 0)) >= 0) {
// MIFARE DESFire GetVersion command success, decoding...
if (nfcRes == 8) { // GetVersion should reply 8 bytes
memcpy(abtDESFireVersion, abtRx + 1, 7);
abtCmd[0] = 0xAF; // ask for GetVersion next bytes
- if ((nfcRes = nfc_initiator_transceive_bytes(pnd, abtCmd, sizeof(abtCmd), abtRx, sizeof(abtRx), 0)) >= 0) {
+ szRxLen = sizeof(abtRx);
+ if ((nfcRes = nfc_initiator_transceive_bytes(pnd, abtCmd, sizeof(abtCmd), abtRx, &szRxLen, 0)) >= 0) {
if (nfcRes == 8) { // GetVersion should reply 8 bytes
memcpy(abtDESFireVersion + 7, abtRx + 1, 7);
res = malloc(16); // We can alloc res: we will be able to provide information