diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index 12799b25f..335898ef1 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -308,7 +308,6 @@ static int mf_print_keys(uint16_t n, uint8_t *d) { } for (uint16_t i = 0; i < n; i++) { - if (mfIsSectorTrailer(i)) { e_sector[mfSectorNum(i)].foundKey[0] = 1; e_sector[mfSectorNum(i)].Key[0] = bytes_to_num(d + (i * MFBLOCK_SIZE), MIFARE_KEY_SIZE); diff --git a/client/src/mifare/mifare4.c b/client/src/mifare/mifare4.c index f42111ba8..ec8d1a6bf 100644 --- a/client/src/mifare/mifare4.c +++ b/client/src/mifare/mifare4.c @@ -530,7 +530,7 @@ uint8_t mfSectorTrailerOfSector(uint8_t sectorNo) { } // assumes blockno is 0-255.. -uint8_t mfSectorTrailer(uint8_t blockNo) { +uint8_t mfSectorTrailer(uint16_t blockNo) { if (blockNo < 32 * 4) { return (blockNo | 0x03); } else { @@ -539,15 +539,15 @@ uint8_t mfSectorTrailer(uint8_t blockNo) { } // assumes blockno is 0-255.. -bool mfIsSectorTrailer(uint8_t blockNo) { +bool mfIsSectorTrailer(uint16_t blockNo) { return (blockNo == mfSectorTrailer(blockNo)); } // assumes blockno is 0-255.. -uint8_t mfSectorNum(uint8_t blockNo) { +uint8_t mfSectorNum(uint16_t blockNo) { if (blockNo < 32 * 4) - return blockNo / 4; + return (blockNo / 4); else - return 32 + (blockNo - 32 * 4) / 16; + return (32 + (blockNo - 32 * 4) / 16); } diff --git a/client/src/mifare/mifare4.h b/client/src/mifare/mifare4.h index 489add9f3..80d55db7b 100644 --- a/client/src/mifare/mifare4.h +++ b/client/src/mifare/mifare4.h @@ -77,9 +77,9 @@ const char *mfGetAccessConditionsDesc(uint8_t blockn, const uint8_t *data); uint8_t mfNumBlocksPerSector(uint8_t sectorNo); uint8_t mfFirstBlockOfSector(uint8_t sectorNo); uint8_t mfSectorTrailerOfSector(uint8_t sectorNo); -uint8_t mfSectorTrailer(uint8_t blockNo); -bool mfIsSectorTrailer(uint8_t blockNo); -uint8_t mfSectorNum(uint8_t blockNo); +uint8_t mfSectorTrailer(uint16_t blockNo); +bool mfIsSectorTrailer(uint16_t blockNo); +uint8_t mfSectorNum(uint16_t blockNo); #endif // mifare4.h