fix: 'hf 15 raw' - wrong length when using -c param

https://github.com/iceman1001/proxmark3/issues/174
This commit is contained in:
iceman1001 2018-02-14 15:24:45 +01:00
parent d0da96bf8a
commit 97803733ce

View file

@ -781,7 +781,8 @@ int CmdHF15Raw(const char *Cmd) {
UsbCommand resp; UsbCommand resp;
UsbCommand c = {CMD_ISO_15693_COMMAND, {0, 1, 1}}; // len,speed,recv? UsbCommand c = {CMD_ISO_15693_COMMAND, {0, 1, 1}}; // len,speed,recv?
int reply = 1, fast = 1, crc = 0, i = 0; int reply = 1, fast = 1, i = 0;
bool crc = false;
char buf[5] = ""; char buf[5] = "";
uint8_t data[100]; uint8_t data[100];
uint32_t datalen = 0, temp; uint32_t datalen = 0, temp;
@ -795,14 +796,14 @@ int CmdHF15Raw(const char *Cmd) {
switch (Cmd[i+1]) { switch (Cmd[i+1]) {
case 'r': case 'r':
case 'R': case 'R':
reply=0; reply = 0;
break; break;
case '2': case '2':
fast=0; fast = 0;
break; break;
case 'c': case 'c':
case 'C': case 'C':
crc=1; crc = true;
break; break;
default: default:
PrintAndLog("Invalid option"); PrintAndLog("Invalid option");
@ -832,10 +833,10 @@ int CmdHF15Raw(const char *Cmd) {
if (crc) { if (crc) {
AddCrc(data, datalen); AddCrc(data, datalen);
c.arg[0] = datalen+2; datalen += 2;
} else {
c.arg[0] = datalen;
} }
c.arg[0] = datalen;
c.arg[1] = fast; c.arg[1] = fast;
c.arg[2] = reply; c.arg[2] = reply;
memcpy(c.d.asBytes, data, datalen); memcpy(c.d.asBytes, data, datalen);