From 1cabef31489935dbf2db1a63121a1c15eae2d13a Mon Sep 17 00:00:00 2001 From: merlokk <807634+merlokk@users.noreply.github.com> Date: Tue, 27 Jul 2021 21:27:58 +0300 Subject: [PATCH] settings decode fix --- client/src/mifare/desfirecore.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/client/src/mifare/desfirecore.c b/client/src/mifare/desfirecore.c index a0b893e4c..667fa7696 100644 --- a/client/src/mifare/desfirecore.c +++ b/client/src/mifare/desfirecore.c @@ -1385,29 +1385,29 @@ void DesfireFillFileSettings(uint8_t *data, size_t datalen, FileSettingsS *fsett switch (fsettings->fileType) { case 0x00: case 0x01: { - fsettings->fileSize = MemLeToUint3byte(&data[0]); + fsettings->fileSize = MemLeToUint3byte(&data[4]); reclen = 4 + 3; break; } case 0x02: { - fsettings->lowerLimit = MemLeToUint4byte(&data[0]); - fsettings->upperLimit = MemLeToUint4byte(&data[4]); - fsettings->value = MemLeToUint4byte(&data[8]); - fsettings->limitedCredit = data[12]; + fsettings->lowerLimit = MemLeToUint4byte(&data[4]); + fsettings->upperLimit = MemLeToUint4byte(&data[8]); + fsettings->value = MemLeToUint4byte(&data[12]); + fsettings->limitedCredit = data[16]; reclen = 4 + 13; break; } case 0x03: case 0x04: { - fsettings->recordSize = MemLeToUint3byte(&data[0]); - fsettings->maxRecordCount = MemLeToUint3byte(&data[3]); - fsettings->curRecordCount = MemLeToUint3byte(&data[6]); + fsettings->recordSize = MemLeToUint3byte(&data[4]); + fsettings->maxRecordCount = MemLeToUint3byte(&data[7]); + fsettings->curRecordCount = MemLeToUint3byte(&data[10]); reclen = 4 + 9; break; } case 0x05: { - fsettings->keyType = data[0]; - fsettings->keyVersion = data[1]; + fsettings->keyType = data[4]; + fsettings->keyVersion = data[5]; break; } default: {