]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlfpresco.c
Fix memory bounds error
[proxmark3-svn] / client / cmdlfpresco.c
index 8ac3a71ea94254a721017152eaa2a79d0657d277..2f4bacfec29410c4a9149a6470c1daabc52af90a 100644 (file)
@@ -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;
                                *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)
                                //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;
                                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(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) {
 
        if (!hex) {
                for (int index =0; index < strlen(id); ++index) {
Impressum, Datenschutz