X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/b9957414a5fc9a661fed27d95838726eeeedadd9..ec0872181b882afe69213c2443f074426ccaa94f:/client/cmdlfpresco.c?ds=sidebyside

diff --git a/client/cmdlfpresco.c b/client/cmdlfpresco.c
index f18c3ec6..2f4bacfe 100644
--- a/client/cmdlfpresco.c
+++ b/client/cmdlfpresco.c
@@ -68,10 +68,10 @@ int GetWiegandFromPresco(const char *Cmd, uint32_t *sitecode, uint32_t *usercode
 				*fullcode = param_get32ex(Cmd, cmdp+1, 0, 10);
 				cmdp+=2;
 				break;
-			case 'P':
-			case 'p':
+			case 'D':
+			case 'd':
 				//param get string int param_getstr(const char *line, int paramnum, char * str)
-				stringlen = param_getstr(Cmd, cmdp+1, id);
+				stringlen = param_getstr(Cmd, cmdp+1, id, sizeof(id));
 				if (stringlen < 2) return -1;
 				cmdp+=2;
 				break;
@@ -91,7 +91,7 @@ int GetWiegandFromPresco(const char *Cmd, uint32_t *sitecode, uint32_t *usercode
 	if(cmdp == 0) errors = 1;
 
 	//Validations
-	if(errors) return -1;
+	if(errors || (stringlen == 0 && !hex) ) return -1;
 
 	if (!hex) {
 		for (int index =0; index < strlen(id); ++index) {
@@ -144,8 +144,9 @@ int CmdPrescoDemod(const char *Cmd) {
 	uint32_t cardid = raw4;
 	PrintAndLog("Presco Tag Found: Card ID %08X", cardid);
 	PrintAndLog("Raw: %08X%08X%08X%08X", raw1,raw2,raw3,raw4);
-	setDemodBuf(DemodBuffer+ans, 128, 0);
-	
+	setDemodBuf(DemodBuffer, 128, ans);
+	setClockGrid(g_DemodClock, g_DemodStartIdx + (ans*g_DemodClock));
+
 	uint32_t sitecode = 0, usercode = 0, fullcode = 0;
 	bool Q5=false;
 	char cmd[12] = {0};