]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlfpresco.c
fix emv search behavior
[proxmark3-svn] / client / cmdlfpresco.c
index 8ac3a71ea94254a721017152eaa2a79d0657d277..865b384b38b0964e48d2796dd459d0f33c64d7f1 100644 (file)
@@ -7,11 +7,13 @@
 // Low frequency Presco tag commands
 // ASK/Manchester, rf/32, 128 bits (complete)
 //-----------------------------------------------------------------------------
+
+#include "cmdlfpresco.h"
+
 #include <string.h>
 #include <inttypes.h>
 #include <stdio.h>
-#include "cmdlfpresco.h"
-#include "proxmark3.h"
+#include "comms.h"
 #include "ui.h"
 #include "util.h"
 #include "graph.h"
@@ -68,10 +70,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 +93,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) {
Impressum, Datenschutz