fix nested loop with cards that do not NACK

This commit is contained in:
LW 2019-12-14 01:41:16 -08:00
commit 9b6d1f74da
3 changed files with 13 additions and 2 deletions

View file

@ -679,7 +679,7 @@ int CmdSriWrite(const char *Cmd) {
uint8_t blockno = -1;
uint8_t data[4] = {0x00};
bool isSrix4k = true;
char str[20];
char str[22];
if (strlen(Cmd) < 1 || cmdp == 'h' || cmdp == 'H') {
PrintAndLog("Usage: hf 14b write <1|2> <BLOCK> <DATA>");

View file

@ -335,7 +335,11 @@ int mfnested(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo,
memcpy(c.d.asBytes, key, 6);
SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1500)) {
if (!WaitForResponseTimeout(CMD_ACK, &resp, 2500)) {
// cards that do not NACK bad keys cause it to get stuck in a loop, so break it out
UsbCommand c = {CMD_PING};
SendCommand(&c);
(void)WaitForResponseTimeout(CMD_ACK,NULL,500);
return -1;
}