Merge 3434adbb4e8c605545ba89dd817d693cc0cbd1b8 into 42de50f2b7bd4c43e3b92f5c9d6a996fd5300e4f

This commit is contained in:
Martin Vítek 2023-03-06 00:04:14 +01:00 committed by GitHub
commit 3b431c464a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -81,6 +81,7 @@
#include <stddef.h>
#include <string.h>
#include <assert.h>
#include <alloca.h>
#include <nfc/nfc.h>
@ -566,29 +567,24 @@ nfc_initiator_select_passive_target(nfc_device *pnd,
{
uint8_t *abtInit = NULL;
uint8_t maxAbt = MAX(12, szInitData);
uint8_t *abtTmpInit = malloc(sizeof(uint8_t) * maxAbt);
uint8_t *abtTmpInit = alloca(sizeof(uint8_t) * maxAbt);
size_t szInit = 0;
int res;
if ((res = nfc_device_validate_modulation(pnd, N_INITIATOR, &nm)) != NFC_SUCCESS) {
free(abtTmpInit);
return res;
}
if (szInitData == 0) {
// Provide default values, if any
prepare_initiator_data(nm, &abtInit, &szInit);
free(abtTmpInit);
} else if (nm.nmt == NMT_ISO14443A) {
abtInit = abtTmpInit;
iso14443_cascade_uid(pbtInitData, szInitData, abtInit, &szInit);
} else {
abtInit = abtTmpInit;
memcpy(abtInit, pbtInitData, szInitData);
free(abtTmpInit);
szInit = szInitData;
}
HAL(initiator_select_passive_target, pnd, nm, abtInit, szInit, pnt);
free(abtTmpInit);
}
/** @ingroup initiator