From 0ce03d9ab0084cd34f483b24e97ef0a92b11284b Mon Sep 17 00:00:00 2001 From: marshmellow42 Date: Sat, 23 May 2015 22:35:50 -0400 Subject: [PATCH 1/3] fix mfu dump getbigbuffer bug Thanks @iceman1001 for catching my oops, and fixing it :) --- armsrc/mifarecmd.c | 2 +- client/cmdhfmfu.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/armsrc/mifarecmd.c b/armsrc/mifarecmd.c index 0586a25db..8355cd194 100644 --- a/armsrc/mifarecmd.c +++ b/armsrc/mifarecmd.c @@ -335,7 +335,7 @@ void MifareUReadCard(uint8_t arg0, uint16_t arg1, uint8_t arg2, uint8_t *datain) if (MF_DBGLEVEL >= MF_DBG_EXTENDED) Dbprintf("Blocks read %d", countblocks); countblocks *= 4; - cmd_send(CMD_ACK, 1, countblocks, countblocks, 0, 0); + cmd_send(CMD_ACK, 1, countblocks, BigBuf_max_traceLen(), 0, 0); FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); LEDsoff(); } diff --git a/client/cmdhfmfu.c b/client/cmdhfmfu.c index 07c379bc0..191032984 100644 --- a/client/cmdhfmfu.c +++ b/client/cmdhfmfu.c @@ -1106,12 +1106,13 @@ int CmdHF14AMfUDump(const char *Cmd){ return 1; } + uint32_t startindex = resp.arg[2]; uint32_t bufferSize = resp.arg[1]; if (bufferSize > sizeof(data)) { PrintAndLog("Data exceeded Buffer size!"); bufferSize = sizeof(data); } - GetFromBigBuf(data, bufferSize, 0); + GetFromBigBuf(data, bufferSize, startindex); WaitForResponse(CMD_ACK,NULL); Pages = bufferSize/4; From 0b14440dce5d879fed70afb455b1f7c56ee85b1e Mon Sep 17 00:00:00 2001 From: Pierre LALET Date: Sun, 24 May 2015 20:14:22 +0200 Subject: [PATCH 2/3] Fix filenames for hf mf esave / eload --- client/cmdhfmf.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c index aa3b66dc6..407f34a0e 100644 --- a/client/cmdhfmf.c +++ b/client/cmdhfmf.c @@ -1200,9 +1200,9 @@ int CmdHF14AMfELoad(const char *Cmd) len = param_getstr(Cmd,nameParamNo,filename); - if (len > FILE_PATH_SIZE) len = FILE_PATH_SIZE; + if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4; - fnameptr += len-4; + fnameptr += len; sprintf(fnameptr, ".eml"); @@ -1299,19 +1299,22 @@ int CmdHF14AMfESave(const char *Cmd) len = param_getstr(Cmd,nameParamNo,filename); - if (len > FILE_PATH_SIZE) len = FILE_PATH_SIZE; + if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4; // user supplied filename? if (len < 1) { // get filename (UID from memory) if (mfEmlGetMem(buf, 0, 1)) { PrintAndLog("Can\'t get UID from block: %d", 0); - sprintf(filename, "dump.eml"); + len = sprintf(fnameptr, "dump"); + fnameptr += len; + } + else { + for (j = 0; j < 7; j++, fnameptr += 2) + sprintf(fnameptr, "%02X", buf[j]); } - for (j = 0; j < 7; j++, fnameptr += 2) - sprintf(fnameptr, "%02X", buf[j]); } else { - fnameptr += len-4; + fnameptr += len; } // add file extension From 292fe7253596b98901fd8162bab82dd1ba394237 Mon Sep 17 00:00:00 2001 From: Pierre LALET Date: Sun, 24 May 2015 22:43:08 +0200 Subject: [PATCH 3/3] Fix filenames for hf mf cload / csave --- client/cmdhfmf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c index 407f34a0e..2b5a5b879 100644 --- a/client/cmdhfmf.c +++ b/client/cmdhfmf.c @@ -1575,10 +1575,10 @@ int CmdHF14AMfCLoad(const char *Cmd) return 0; } else { len = strlen(Cmd); - if (len > FILE_PATH_SIZE) len = FILE_PATH_SIZE; + if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4; memcpy(filename, Cmd, len); - fnameptr += len-4; + fnameptr += len; sprintf(fnameptr, ".eml"); @@ -1744,7 +1744,7 @@ int CmdHF14AMfCSave(const char *Cmd) { return 0; } else { len = strlen(Cmd); - if (len > FILE_PATH_SIZE) len = FILE_PATH_SIZE; + if (len > FILE_PATH_SIZE - 4) len = FILE_PATH_SIZE - 4; if (len < 1) { // get filename