X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/534983d7352171526a6d43b112e0baaefdb1e3cd..e6b8c965bb27650b3ead5738ba46dd4c82f937de:/client/cmdmain.c diff --git a/client/cmdmain.c b/client/cmdmain.c index 3388d75f..ff58e0a4 100644 --- a/client/cmdmain.c +++ b/client/cmdmain.c @@ -26,6 +26,7 @@ unsigned int current_command = CMD_UNKNOWN; unsigned int received_command = CMD_UNKNOWN; UsbCommand current_response; +UsbCommand current_response_user; static int CmdHelp(const char *Cmd); static int CmdQuit(const char *Cmd); @@ -55,12 +56,16 @@ int CmdQuit(const char *Cmd) } UsbCommand * WaitForResponseTimeout(uint32_t response_type, uint32_t ms_timeout) { - UsbCommand * ret = ¤t_response; + UsbCommand * ret = NULL; int i=0; for(i=0; received_command != response_type && i < ms_timeout / 10; i++) { msleep(10); // XXX ugh } + + // There was an evil BUG + memcpy(¤t_response_user, ¤t_response, sizeof(UsbCommand)); + ret = ¤t_response_user; if(received_command != response_type) ret = NULL; @@ -100,12 +105,12 @@ void UsbCommandReceived(UsbCommand *UC) } memcpy(s, UC->d.asBytes, UC->arg[0]); s[UC->arg[0]] = '\0'; - PrintAndLog("#db# %s", s); + PrintAndLog("#db# %s ", s); return; } case CMD_DEBUG_PRINT_INTEGERS: - PrintAndLog("#db# %08x, %08x, %08x\r\n", UC->arg[0], UC->arg[1], UC->arg[2]); + PrintAndLog("#db# %08x, %08x, %08x \r\n", UC->arg[0], UC->arg[1], UC->arg[2]); return; case CMD_MEASURED_ANTENNA_TUNING: { @@ -153,7 +158,7 @@ void UsbCommandReceived(UsbCommand *UC) unexpected_response: if(UC->cmd != CMD_ACK) - PrintAndLog("unrecognized command %08x\n", UC->cmd); + PrintAndLog("unrecognized command %08x \n", UC->cmd); else memcpy(¤t_response, UC, sizeof(UsbCommand)); received_command = UC->cmd;