From 3c6354e99a34b09e6cdcba1961033aca4b98710c Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Thu, 20 Oct 2016 01:50:30 +0200 Subject: [PATCH] FIX: strange bug in "lf em em410xwatch" , which the client crasches when it reads a valid em tag. --- client/cmdlfem4x.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/client/cmdlfem4x.c b/client/cmdlfem4x.c index 6cb76fee2..d139724c1 100644 --- a/client/cmdlfem4x.c +++ b/client/cmdlfem4x.c @@ -13,7 +13,7 @@ #include #include "cmdlfem4x.h" -char *global_em410xId; +uint64_t g_em410xid = 0; static int CmdHelp(const char *Cmd); @@ -47,11 +47,7 @@ int CmdEM410xRead(const char *Cmd) PrintAndLog ("EM410x XL pattern found"); return 0; } - char id[12] = {0x00}; - //sprintf(id, "%010llx",lo); - sprintf(id, "%010"PRIu64, lo); - - global_em410xId = id; + g_em410xid = lo; return 1; } @@ -150,11 +146,18 @@ int CmdEM410xWatch(const char *Cmd) } //currently only supports manchester modulations +// todo: helptext int CmdEM410xWatchnSpoof(const char *Cmd) { - CmdEM410xWatch(Cmd); - PrintAndLog("# Replaying captured ID: %s",global_em410xId); - CmdLFaskSim(""); + // loops if the captured ID was in XL-format. + uint8_t ans = 0; + do { + ans = CmdEM410xWatch(Cmd); + if ( ans ) { + PrintAndLog("# Replaying captured ID: %llu", g_em410xid); + CmdLFaskSim(""); + } + } while ( !ans ); return 0; }