mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-20 13:23:25 -07:00
Merge pull request #162 from marshmellow42/CoverityFixes
Coverity fixes - mainly from @iceman1001 s fork
This commit is contained in:
commit
b31ef4f510
11 changed files with 97 additions and 52 deletions
|
@ -33,8 +33,6 @@
|
|||
#include "usb_cmd.h"
|
||||
#include "cmdhfmfu.h"
|
||||
|
||||
#define llX PRIx64
|
||||
|
||||
static int CmdHelp(const char *Cmd);
|
||||
|
||||
#define ICLASS_KEYS_MAX 8
|
||||
|
@ -283,8 +281,13 @@ int CmdHFiClassELoad(const char *Cmd) {
|
|||
long fsize = ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
|
||||
uint8_t *dump = malloc(fsize);
|
||||
if (fsize < 0) {
|
||||
PrintAndLog("Error, when getting filesize");
|
||||
fclose(f);
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t *dump = malloc(fsize);
|
||||
|
||||
size_t bytes_read = fread(dump, 1, fsize, f);
|
||||
fclose(f);
|
||||
|
@ -368,10 +371,13 @@ int CmdHFiClassDecrypt(const char *Cmd) {
|
|||
//Open the tagdump-file
|
||||
FILE *f;
|
||||
char filename[FILE_PATH_SIZE];
|
||||
if(opt == 'f' && param_getstr(Cmd, 1, filename) > 0)
|
||||
{
|
||||
if(opt == 'f' && param_getstr(Cmd, 1, filename) > 0) {
|
||||
f = fopen(filename, "rb");
|
||||
}else{
|
||||
if ( f == NULL ) {
|
||||
PrintAndLog("Could not find file %s", filename);
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
return usage_hf_iclass_decrypt();
|
||||
}
|
||||
|
||||
|
@ -591,7 +597,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
|
|||
errors = param_gethex(tempStr, 0, CreditKEY, dataLen);
|
||||
} else if (dataLen == 1) {
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr <= ICLASS_KEYS_MAX) {
|
||||
if (keyNbr < ICLASS_KEYS_MAX) {
|
||||
memcpy(CreditKEY, iClass_Key_Table[keyNbr], 8);
|
||||
} else {
|
||||
PrintAndLog("\nERROR: Credit KeyNbr is invalid\n");
|
||||
|
@ -625,7 +631,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
|
|||
errors = param_gethex(tempStr, 0, KEY, dataLen);
|
||||
} else if (dataLen == 1) {
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr <= ICLASS_KEYS_MAX) {
|
||||
if (keyNbr < ICLASS_KEYS_MAX) {
|
||||
memcpy(KEY, iClass_Key_Table[keyNbr], 8);
|
||||
} else {
|
||||
PrintAndLog("\nERROR: Credit KeyNbr is invalid\n");
|
||||
|
@ -884,7 +890,7 @@ int CmdHFiClass_WriteBlock(const char *Cmd) {
|
|||
errors = param_gethex(tempStr, 0, KEY, dataLen);
|
||||
} else if (dataLen == 1) {
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr <= ICLASS_KEYS_MAX) {
|
||||
if (keyNbr < ICLASS_KEYS_MAX) {
|
||||
memcpy(KEY, iClass_Key_Table[keyNbr], 8);
|
||||
} else {
|
||||
PrintAndLog("\nERROR: Credit KeyNbr is invalid\n");
|
||||
|
@ -933,7 +939,7 @@ int usage_hf_iclass_clone(void) {
|
|||
}
|
||||
|
||||
int CmdHFiClassCloneTag(const char *Cmd) {
|
||||
char filename[FILE_PATH_SIZE];
|
||||
char filename[FILE_PATH_SIZE] = {0};
|
||||
char tempStr[50]={0};
|
||||
uint8_t KEY[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
|
||||
uint8_t keyNbr = 0;
|
||||
|
@ -987,7 +993,7 @@ int CmdHFiClassCloneTag(const char *Cmd) {
|
|||
errors = param_gethex(tempStr, 0, KEY, dataLen);
|
||||
} else if (dataLen == 1) {
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr <= ICLASS_KEYS_MAX) {
|
||||
if (keyNbr < ICLASS_KEYS_MAX) {
|
||||
memcpy(KEY, iClass_Key_Table[keyNbr], 8);
|
||||
} else {
|
||||
PrintAndLog("\nERROR: Credit KeyNbr is invalid\n");
|
||||
|
@ -1038,6 +1044,7 @@ int CmdHFiClassCloneTag(const char *Cmd) {
|
|||
|
||||
if (startblock<5) {
|
||||
PrintAndLog("You cannot write key blocks this way. yet... make your start block > 4");
|
||||
fclose(f);
|
||||
return 0;
|
||||
}
|
||||
// now read data from the file from block 6 --- 19
|
||||
|
@ -1046,7 +1053,11 @@ int CmdHFiClassCloneTag(const char *Cmd) {
|
|||
// else we have to create a share memory
|
||||
int i;
|
||||
fseek(f,startblock*8,SEEK_SET);
|
||||
fread(tag_data,sizeof(iclass_block_t),endblock - startblock + 1,f);
|
||||
if ( fread(tag_data,sizeof(iclass_block_t),endblock - startblock + 1,f) == 0 ) {
|
||||
PrintAndLog("File reading error.");
|
||||
fclose(f);
|
||||
return 2;
|
||||
}
|
||||
|
||||
uint8_t MAC[4]={0x00,0x00,0x00,0x00};
|
||||
uint8_t div_key[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
|
||||
|
@ -1168,7 +1179,7 @@ int CmdHFiClass_ReadBlock(const char *Cmd) {
|
|||
errors = param_gethex(tempStr, 0, KEY, dataLen);
|
||||
} else if (dataLen == 1) {
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr <= ICLASS_KEYS_MAX) {
|
||||
if (keyNbr < ICLASS_KEYS_MAX) {
|
||||
memcpy(KEY, iClass_Key_Table[keyNbr], 8);
|
||||
} else {
|
||||
PrintAndLog("\nERROR: Credit KeyNbr is invalid\n");
|
||||
|
@ -1305,8 +1316,13 @@ int CmdHFiClassReadTagFile(const char *Cmd) {
|
|||
long fsize = ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
|
||||
uint8_t *dump = malloc(fsize);
|
||||
if ( fsize < 0 ) {
|
||||
PrintAndLog("Error, when getting filesize");
|
||||
fclose(f);
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t *dump = malloc(fsize);
|
||||
|
||||
size_t bytes_read = fread(dump, 1, fsize, f);
|
||||
fclose(f);
|
||||
|
@ -1332,7 +1348,7 @@ uint64_t hexarray_to_uint64(uint8_t *key) {
|
|||
for (int i = 0;i < 8;i++)
|
||||
sprintf(&temp[(i *2)],"%02X",key[i]);
|
||||
temp[16] = '\0';
|
||||
if (sscanf(temp,"%016"llX,&uint_key) < 1)
|
||||
if (sscanf(temp,"%016"llx,&uint_key) < 1)
|
||||
return 0;
|
||||
return uint_key;
|
||||
}
|
||||
|
@ -1431,7 +1447,7 @@ int CmdHFiClassCalcNewKey(const char *Cmd) {
|
|||
errors = param_gethex(tempStr, 0, NEWKEY, dataLen);
|
||||
} else if (dataLen == 1) {
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr <= ICLASS_KEYS_MAX) {
|
||||
if (keyNbr < ICLASS_KEYS_MAX) {
|
||||
memcpy(NEWKEY, iClass_Key_Table[keyNbr], 8);
|
||||
} else {
|
||||
PrintAndLog("\nERROR: NewKey Nbr is invalid\n");
|
||||
|
@ -1450,7 +1466,7 @@ int CmdHFiClassCalcNewKey(const char *Cmd) {
|
|||
errors = param_gethex(tempStr, 0, OLDKEY, dataLen);
|
||||
} else if (dataLen == 1) {
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr <= ICLASS_KEYS_MAX) {
|
||||
if (keyNbr < ICLASS_KEYS_MAX) {
|
||||
memcpy(OLDKEY, iClass_Key_Table[keyNbr], 8);
|
||||
} else {
|
||||
PrintAndLog("\nERROR: Credit KeyNbr is invalid\n");
|
||||
|
@ -1498,6 +1514,12 @@ static int loadKeys(char *filename) {
|
|||
long fsize = ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
|
||||
if ( fsize < 0 ) {
|
||||
PrintAndLog("Error, when getting filesize");
|
||||
fclose(f);
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t *dump = malloc(fsize);
|
||||
|
||||
size_t bytes_read = fread(dump, 1, fsize, f);
|
||||
|
@ -1590,8 +1612,8 @@ int CmdHFiClassManageKeys(const char *Cmd) {
|
|||
case 'n':
|
||||
case 'N':
|
||||
keyNbr = param_get8(Cmd, cmdp+1);
|
||||
if (keyNbr < 0) {
|
||||
PrintAndLog("Wrong block number");
|
||||
if (keyNbr >= ICLASS_KEYS_MAX) {
|
||||
PrintAndLog("Invalid block number");
|
||||
errors = true;
|
||||
}
|
||||
cmdp += 2;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue