FIX: hf mf eload - now supports specifying 0,1,2,4 in card memory for the file to be loaded.
FIX: hf mf esave - now supports specifying 0,1,2,4 in card memory for the file to be saved. ADD: data.h - added FILE_PATH_SIZE constant ADD: hf legic load - a command help and checks for FILE_PATH_SIZE ADD: hf legis save - now checks for FILE_PATH_SIZE ADD: lf hitag - now checks for FILE_PATH_SIZE ADD: util.c - AddLogLine now checks for FILE_PATH_SIZE ADD: data load / save - now checks for FILE_PATH_SIZE FIX: ui.c - added a case of closing a filehandle FIX: hf mf cload / csave now checks for FILE_PATH_SIZE FIX: armsrc/mifarecmd.c - adjusted the buffersize in MifareEMemget from 48 to USB_CMD_DATA_SIZE
This commit is contained in:
@@ -218,7 +218,24 @@ int CmdLegicRFRead(const char *Cmd)
|
||||
|
||||
int CmdLegicLoad(const char *Cmd)
|
||||
{
|
||||
FILE *f = fopen(Cmd, "r");
|
||||
char filename[FILE_PATH_SIZE] = {0x00};
|
||||
int len = 0;
|
||||
|
||||
if (param_getchar(Cmd, 0) == 'h' || param_getchar(Cmd, 0)== 0x00) {
|
||||
PrintAndLog("It loads datasamples from the file `filename`");
|
||||
PrintAndLog("Usage: hf legic load <file name>");
|
||||
PrintAndLog(" sample: hf legic load filename");
|
||||
return 0;
|
||||
}
|
||||
|
||||
len = strlen(Cmd);
|
||||
if (len > FILE_PATH_SIZE) {
|
||||
PrintAndLog("Filepath too long (was %s bytes), max allowed is %s ", len, FILE_PATH_SIZE);
|
||||
return 0;
|
||||
}
|
||||
memcpy(filename, Cmd, len);
|
||||
|
||||
FILE *f = fopen(filename, "r");
|
||||
if(!f) {
|
||||
PrintAndLog("couldn't open '%s'", Cmd);
|
||||
return -1;
|
||||
@@ -251,7 +268,7 @@ int CmdLegicSave(const char *Cmd)
|
||||
int requested = 1024;
|
||||
int offset = 0;
|
||||
int delivered = 0;
|
||||
char filename[1024];
|
||||
char filename[FILE_PATH_SIZE];
|
||||
uint8_t got[1024];
|
||||
|
||||
sscanf(Cmd, " %s %i %i", filename, &requested, &offset);
|
||||
@@ -265,7 +282,6 @@ int CmdLegicSave(const char *Cmd)
|
||||
int remainder = requested % 8;
|
||||
requested = requested + 8 - remainder;
|
||||
}
|
||||
|
||||
if (offset + requested > sizeof(got)) {
|
||||
PrintAndLog("Tried to read past end of buffer, <bytes> + <offset> > 1024");
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user