refactoring the return value of function

This commit is contained in:
iceman1001 2023-05-06 14:31:19 +02:00
commit 0224816208
2 changed files with 16 additions and 25 deletions

View file

@ -134,12 +134,12 @@ static char *GenerateFilename(const char *prefix, const char *suffix) {
return fptr; return fptr;
} }
static int32_t initSectorTable(sector_t **src, int32_t items) { static int initSectorTable(sector_t **src, size_t items) {
(*src) = calloc(items, sizeof(sector_t)); (*src) = calloc(items, sizeof(sector_t));
if (*src == NULL) if (*src == NULL)
return -1; return PM3_EMALLOC;
// empty e_sector // empty e_sector
for (int i = 0; i < items; ++i) { for (int i = 0; i < items; ++i) {
@ -148,7 +148,7 @@ static int32_t initSectorTable(sector_t **src, int32_t items) {
(*src)[i].foundKey[j] = false; (*src)[i].foundKey[j] = false;
} }
} }
return items; return PM3_SUCCESS;
} }
static void decode_print_st(uint16_t blockno, uint8_t *data) { static void decode_print_st(uint16_t blockno, uint8_t *data) {
@ -2390,7 +2390,6 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
iso14a_card_select_t card; iso14a_card_select_t card;
memcpy(&card, (iso14a_card_select_t *)resp.data.asBytes, sizeof(iso14a_card_select_t)); memcpy(&card, (iso14a_card_select_t *)resp.data.asBytes, sizeof(iso14a_card_select_t));
// detect MFC EV1 Signature // detect MFC EV1 Signature
bool is_ev1 = detect_mfc_ev1_signature(); bool is_ev1 = detect_mfc_ev1_signature();
if (is_ev1) { if (is_ev1) {
@ -2400,9 +2399,7 @@ static int CmdHF14AMfAutoPWN(const char *Cmd) {
// create/initialize key storage structure // create/initialize key storage structure
uint32_t e_sector_size = sector_cnt > sectorno ? sector_cnt : sectorno + 1; uint32_t e_sector_size = sector_cnt > sectorno ? sector_cnt : sectorno + 1;
res = initSectorTable(&e_sector, e_sector_size); if (initSectorTable(&e_sector, e_sector_size) != PM3_SUCCESS) {
if (res != e_sector_size) {
free(e_sector);
return PM3_EMALLOC; return PM3_EMALLOC;
} }
@ -3195,8 +3192,7 @@ static int CmdHF14AMfChk_fast(const char *Cmd) {
// create/initialize key storage structure // create/initialize key storage structure
sector_t *e_sector = NULL; sector_t *e_sector = NULL;
int32_t res = initSectorTable(&e_sector, sectorsCnt); if (initSectorTable(&e_sector, sectorsCnt) != PM3_SUCCESS) {
if (res != sectorsCnt) {
free(keyBlock); free(keyBlock);
return PM3_EMALLOC; return PM3_EMALLOC;
} }
@ -3231,7 +3227,7 @@ static int CmdHF14AMfChk_fast(const char *Cmd) {
if (size == keycnt - i) if (size == keycnt - i)
lastChunk = true; lastChunk = true;
res = mfCheckKeys_fast(sectorsCnt, firstChunk, lastChunk, strategy, size, keyBlock + (i * 6), e_sector, false); int res = mfCheckKeys_fast(sectorsCnt, firstChunk, lastChunk, strategy, size, keyBlock + (i * 6), e_sector, false);
if (firstChunk) if (firstChunk)
firstChunk = false; firstChunk = false;
@ -3438,8 +3434,7 @@ static int CmdHF14AMfChk(const char *Cmd) {
// create/initialize key storage structure // create/initialize key storage structure
sector_t *e_sector = NULL; sector_t *e_sector = NULL;
int32_t res = initSectorTable(&e_sector, SectorsCnt); if (initSectorTable(&e_sector, SectorsCnt) != PM3_SUCCESS) {
if (res != SectorsCnt) {
free(keyBlock); free(keyBlock);
return PM3_EMALLOC; return PM3_EMALLOC;
} }
@ -3597,19 +3592,18 @@ out:
return PM3_SUCCESS; return PM3_SUCCESS;
} }
void showSectorTable(sector_t *k_sector, uint8_t k_sectorsCount) { void showSectorTable(sector_t *k_sector, uint8_t k_sectors_cnt) {
if (k_sector != NULL) { if (k_sector != NULL) {
printKeyTable(k_sectorsCount, k_sector); printKeyTable(k_sectors_cnt, k_sector);
free(k_sector); free(k_sector);
} }
} }
void readerAttack(sector_t *k_sector, uint8_t k_sectorsCount, nonces_t data, bool setEmulatorMem, bool verbose) { void readerAttack(sector_t *k_sector, uint8_t k_sectors_cnt, nonces_t data, bool setEmulatorMem, bool verbose) {
// init if needed
if (k_sector == NULL) { if (k_sector == NULL) {
int32_t res = initSectorTable(&k_sector, k_sectorsCount); if (initSectorTable(&k_sector, k_sectors_cnt) != PM3_SUCCESS) {
if (res != k_sectorsCount) {
free(k_sector);
return; return;
} }
} }
@ -4566,12 +4560,9 @@ static int CmdHF14AMfEKeyPrn(const char *Cmd) {
return PM3_EINVARG; return PM3_EINVARG;
} }
sector_t *e_sector = NULL;
// create/initialize key storage structure // create/initialize key storage structure
int32_t res = initSectorTable(&e_sector, sectors_cnt); sector_t *e_sector = NULL;
if (res != sectors_cnt) { if (initSectorTable(&e_sector, sectors_cnt) != PM3_SUCCESS) {
free(e_sector);
return PM3_EMALLOC; return PM3_EMALLOC;
} }

View file

@ -30,8 +30,8 @@ int CmdHFMFNDEFRead(const char *Cmd); // used by "nfc mf cread"
int CmdHFMFNDEFFormat(const char *Cmd); // used by "nfc mf cformat" int CmdHFMFNDEFFormat(const char *Cmd); // used by "nfc mf cformat"
int CmdHFMFNDEFWrite(const char *Cmd); // used by "nfc mf cwrite" int CmdHFMFNDEFWrite(const char *Cmd); // used by "nfc mf cwrite"
void showSectorTable(sector_t *k_sector, uint8_t k_sectorsCount); void showSectorTable(sector_t *k_sector, uint8_t k_sectors_cnt);
void readerAttack(sector_t *k_sector, uint8_t k_sectorsCount, nonces_t data, bool setEmulatorMem, bool verbose); void readerAttack(sector_t *k_sector, uint8_t k_sectors_cnt, nonces_t data, bool setEmulatorMem, bool verbose);
void printKeyTable(uint8_t sectorscnt, sector_t *e_sector); void printKeyTable(uint8_t sectorscnt, sector_t *e_sector);
void printKeyTableEx(uint8_t sectorscnt, sector_t *e_sector, uint8_t start_sector); void printKeyTableEx(uint8_t sectorscnt, sector_t *e_sector, uint8_t start_sector);
void printKeyTable_fast(uint8_t sectorscnt, icesector_t *e_sector, uint64_t bar, uint64_t foo); void printKeyTable_fast(uint8_t sectorscnt, icesector_t *e_sector, uint64_t bar, uint64_t foo);