X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/33c7e2f3bc324a122fb9db8dca23efcd425a3cec..908536d1616e4953db6fe43de8a6b0cac1972b9a:/client/cmddata.c diff --git a/client/cmddata.c b/client/cmddata.c index cf4dc6b9..533caeb5 100644 --- a/client/cmddata.c +++ b/client/cmddata.c @@ -30,6 +30,12 @@ static int CmdHelp(const char *Cmd); //by marshmellow void setDemodBuf(uint8_t *buff, size_t size, size_t startIdx) { + if (buff == NULL) + return; + + if ( size >= MAX_DEMOD_BUF_LEN) + size = MAX_DEMOD_BUF_LEN; + size_t i = 0; for (; i < size; i++){ DemodBuffer[i]=buff[startIdx++]; @@ -57,9 +63,8 @@ void printDemodBuff() } if (bitLen>512) bitLen=512; //max output to 512 bits if we have more - should be plenty - // equally divided by 16 - if ( bitLen % 16 > 0) - bitLen = (bitLen/16); + // ensure equally divided by 16 + bitLen &= 0xfff0; for (i = 0; i <= (bitLen-16); i+=16) { PrintAndLog("%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i", @@ -193,6 +198,11 @@ void printBitStream(uint8_t BitStream[], uint32_t bitLen) return; } if (bitLen>512) bitLen=512; + + // ensure equally divided by 16 + bitLen &= 0xfff0; + + for (i = 0; i <= (bitLen-16); i+=16) { PrintAndLog("%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i%i", BitStream[i],