]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
fix hf search (#908)
authorpwpiwi <pwpiwi@users.noreply.github.com>
Tue, 7 Jan 2020 21:33:55 +0000 (22:33 +0100)
committerGitHub <noreply@github.com>
Tue, 7 Jan 2020 21:33:55 +0000 (22:33 +0100)
* fix memory access violation in HF14B_Other_Reader()

client/cmdhf14b.c

index 0c6ff4b37c826b47a17f0fc9d416794ce71d3490..2ad3525144d5dc7ad135a4016cfd1a311c19495e 100644 (file)
@@ -121,7 +121,7 @@ int HF14BCmdRaw(bool reply, bool *crc, bool power, uint8_t *data, uint8_t *datal
        }
 
        *datalen = ret;
        }
 
        *datalen = ret;
-       
+
        if (ret < 2) return 0;
 
        memcpy(data, resp.d.asBytes, *datalen);
        if (ret < 2) return 0;
 
        memcpy(data, resp.d.asBytes, *datalen);
@@ -529,22 +529,21 @@ static bool HF14B_ST_Info(bool verbose) {
 
 
 // test for other 14b type tags (mimic another reader - don't have tags to identify)
 
 
 // test for other 14b type tags (mimic another reader - don't have tags to identify)
-static bool HF14B_Other_Reader(bool verbose) {
-       uint8_t data[4];
+static bool HF14B_Other_Reader(uint8_t *data, bool verbose) {
        uint8_t datalen;
        uint8_t datalen;
-
        bool crc = true;
        bool crc = true;
-       datalen = 4;
+
        //std read cmd
        data[0] = 0x00;
        data[1] = 0x0b;
        data[2] = 0x3f;
        data[3] = 0x80;
        //std read cmd
        data[0] = 0x00;
        data[1] = 0x0b;
        data[2] = 0x3f;
        data[3] = 0x80;
+       datalen = 4;
 
        if (HF14BCmdRaw(true, &crc, true, data, &datalen, false) != 0) {
                if (datalen > 2 || !crc) {
                        PrintAndLog ("\n14443-3b tag found:");
 
        if (HF14BCmdRaw(true, &crc, true, data, &datalen, false) != 0) {
                if (datalen > 2 || !crc) {
                        PrintAndLog ("\n14443-3b tag found:");
-                       PrintAndLog ("Unknown tag type answered to a 0x000b3f80 command ans:");
+                       PrintAndLog ("Unknown tag type answered to a 0x000b3f80 command:");
                        PrintAndLog ("%s", sprint_hex(data, datalen));
                        switch_off_field_14b();
                        return true;
                        PrintAndLog ("%s", sprint_hex(data, datalen));
                        switch_off_field_14b();
                        return true;
@@ -558,7 +557,7 @@ static bool HF14B_Other_Reader(bool verbose) {
        if (HF14BCmdRaw(true, &crc, true, data, &datalen, false) != 0) {
                if (datalen > 0) {
                        PrintAndLog ("\n14443-3b tag found:");
        if (HF14BCmdRaw(true, &crc, true, data, &datalen, false) != 0) {
                if (datalen > 0) {
                        PrintAndLog ("\n14443-3b tag found:");
-                       PrintAndLog ("Unknown tag type answered to a 0x0A command ans:");
+                       PrintAndLog ("Unknown tag type answered to a 0x0A command:");
                        PrintAndLog ("%s", sprint_hex(data, datalen));
                        switch_off_field_14b();
                        return true;
                        PrintAndLog ("%s", sprint_hex(data, datalen));
                        switch_off_field_14b();
                        return true;
@@ -572,7 +571,7 @@ static bool HF14B_Other_Reader(bool verbose) {
        if (HF14BCmdRaw(true, &crc, true, data, &datalen, false) != 0) {
                if (datalen > 0) {
                        PrintAndLog ("\n14443-3b tag found:");
        if (HF14BCmdRaw(true, &crc, true, data, &datalen, false) != 0) {
                if (datalen > 0) {
                        PrintAndLog ("\n14443-3b tag found:");
-                       PrintAndLog ("Unknown tag type answered to a 0x0C command ans:");
+                       PrintAndLog ("Unknown tag type answered to a 0x0C command:");
                        PrintAndLog ("%s", sprint_hex(data, datalen));
                        switch_off_field_14b();
                        return true;
                        PrintAndLog ("%s", sprint_hex(data, datalen));
                        switch_off_field_14b();
                        return true;
@@ -606,7 +605,7 @@ int infoHF14B(bool verbose) {
 
        // try unknown 14b read commands (to be identified later)
        //   could be read of calypso, CEPAS, moneo, or pico pass.
 
        // try unknown 14b read commands (to be identified later)
        //   could be read of calypso, CEPAS, moneo, or pico pass.
-       if (HF14B_Other_Reader(verbose)) return 1;
+       if (HF14B_Other_Reader(data, verbose)) return 1;
 
        if (verbose) PrintAndLog("no 14443B tag found");
        return 0;
 
        if (verbose) PrintAndLog("no 14443B tag found");
        return 0;
@@ -636,7 +635,7 @@ int readHF14B(bool verbose){
 
        // try unknown 14b read commands (to be identified later)
        //   could be read of calypso, CEPAS, moneo, or pico pass.
 
        // try unknown 14b read commands (to be identified later)
        //   could be read of calypso, CEPAS, moneo, or pico pass.
-       if (HF14B_Other_Reader(verbose)) return 1;
+       if (HF14B_Other_Reader(data, verbose)) return 1;
 
        if (verbose) PrintAndLog("no 14443B tag found");
        return 0;
 
        if (verbose) PrintAndLog("no 14443B tag found");
        return 0;
Impressum, Datenschutz