summaryrefslogtreecommitdiffstats
path: root/src/phFriNfc_MapTools.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/phFriNfc_MapTools.c')
-rw-r--r--src/phFriNfc_MapTools.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/phFriNfc_MapTools.c b/src/phFriNfc_MapTools.c
index 2283473..2e05d33 100644
--- a/src/phFriNfc_MapTools.c
+++ b/src/phFriNfc_MapTools.c
@@ -99,6 +99,18 @@ NFCSTATUS phFriNfc_MapTool_SetCardState(phFriNfc_NdefMap_t *NdefMap,
PH_NDEFMAP_CARD_STATE_INVALID)?
NdefMap->CardState:
PH_NDEFMAP_CARD_STATE_READ_WRITE);
+ if (NdefMap->CardType == PH_FRINFC_NDEFMAP_MIFARE_STD_1K_CARD ||
+ NdefMap->CardType == PH_FRINFC_NDEFMAP_MIFARE_STD_4K_CARD)
+ {
+ if(NdefMap->StdMifareContainer.ReadOnlySectorIndex &&
+ NdefMap->StdMifareContainer.SectorTrailerBlockNo == NdefMap->StdMifareContainer.currentBlock )
+ {
+ NdefMap->CardState = (uint8_t)((NdefMap->CardState ==
+ PH_NDEFMAP_CARD_STATE_INVALID)?
+ NdefMap->CardState:
+ PH_NDEFMAP_CARD_STATE_READ_ONLY);
+ }
+ }
break;
default: