Increased Mifare Esave & Eload filename array to 255 from 20

This commit is contained in:
midnitesnake 2014-11-15 22:01:59 +00:00
commit 8720c8f5d7

View file

@ -1107,24 +1107,28 @@ int CmdHF14AMfESet(const char *Cmd)
int CmdHF14AMfELoad(const char *Cmd) int CmdHF14AMfELoad(const char *Cmd)
{ {
FILE * f; FILE * f;
char filename[20]; char filename[255];
char * fnameptr = filename; char * fnameptr = filename;
char buf[64]; char buf[64];
uint8_t buf8[64]; uint8_t buf8[64];
int i, len, blockNum; int i, len, blockNum;
bool 4kcard = 0;
memset(filename, 0, sizeof(filename)); memset(filename, 0, sizeof(filename));
memset(buf, 0, sizeof(buf)); memset(buf, 0, sizeof(buf));
if (param_getchar(Cmd, 0) == 'h' || param_getchar(Cmd, 0)== 0x00) { if (param_getchar(Cmd, 0) == 'h' || param_getchar(Cmd, 0)== 0x00) {
PrintAndLog("It loads emul dump from the file `filename.eml`"); PrintAndLog("It loads emul dump from the file `filename.eml`");
PrintAndLog("Usage: hf mf eload <file name w/o `.eml`>"); PrintAndLog("Usage: hf mf eload <file name w/o `.eml`> <4 - 4kcard>");
PrintAndLog(" sample: hf mf eload filename"); PrintAndLog(" sample: hf mf eload filename [4]");
return 0; return 0;
} }
size = param_getchar(Cmd, 1);
if (size == '4') 4kcard = 1;
len = strlen(Cmd); len = strlen(Cmd);
if (len > 14) len = 14; if (len > 254) len = 254;
memcpy(filename, Cmd, len); memcpy(filename, Cmd, len);
fnameptr += len; fnameptr += len;
@ -1170,10 +1174,17 @@ int CmdHF14AMfELoad(const char *Cmd)
} }
fclose(f); fclose(f);
if(4kcard){
if (blockNum != 32 * 4 + 8 * 16){
PrintAndLog("File content error. There must be 64 blocks");
return 4;
}
}else{
if (blockNum != 16 * 4 && blockNum != 32 * 4 + 8 * 16){ if (blockNum != 16 * 4 && blockNum != 32 * 4 + 8 * 16){
PrintAndLog("File content error. There must be 64 blocks"); PrintAndLog("File content error. There must be 64 blocks");
return 4; return 4;
} }
}
PrintAndLog("Loaded %d blocks from file: %s", blockNum, filename); PrintAndLog("Loaded %d blocks from file: %s", blockNum, filename);
return 0; return 0;
} }
@ -1181,7 +1192,7 @@ int CmdHF14AMfELoad(const char *Cmd)
int CmdHF14AMfESave(const char *Cmd) int CmdHF14AMfESave(const char *Cmd)
{ {
FILE * f; FILE * f;
char filename[20]; char filename[255];
char * fnameptr = filename; char * fnameptr = filename;
uint8_t buf[64]; uint8_t buf[64];
int i, j, len; int i, j, len;
@ -1198,7 +1209,7 @@ int CmdHF14AMfESave(const char *Cmd)
} }
len = strlen(Cmd); len = strlen(Cmd);
if (len > 14) len = 14; if (len > 254) len = 254;
if (len < 1) { if (len < 1) {
// get filename // get filename