Fix one coding error of using a temporary variable in the global structure NdefMap
In the following code: the local variable PacketDataLength is a local
variable in stack, but used in the ndefMap which is a global structure.
When the function phFriNfc_NdefMap_EraseNdef( ) returns, the
PacketDataLength will be freed, too. If it is used later via the pointer
in NdefMap, will cause some of potential issues. Fix it by re-define it
as static.
NFCSTATUS phFriNfc_NdefMap_EraseNdef(phFriNfc_NdefMap_t *NdefMap)
{
NFCSTATUS status = NFCSTATUS_PENDING;
static uint8_t PktData[3] = PH_FRINFC_NDEFMAP_EMPTY_NDEF_MSG;
uint8_t MemOffset = PH_FRINFC_NDEFMAP_SEEK_BEGIN;
uint32_t PacketDataLength = sizeof(PktData);
...
/* Mifare card selected. Call Mifare Write */
status = phFriNfc_NdefMap_WrNdef( NdefMap,
PktData,
&PacketDataLength,
MemOffset);
break;
...
}
Change-Id: Iee278fe39749619aa44c620138eae85a46f6e4a5
Signed-off-by: Dejan REBRACA <dejanx.rebraca@intel.com>
Signed-off-by: Ken Wahid <kenx.wahid@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
1 file changed