]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhfmf.c
CHG: @Marshmellow42 's fixes. ref: https://github.com/marshmellow42/proxmark3/commi...
[proxmark3-svn] / client / cmdhfmf.c
index 20bb59298630cebabff7bb686253830b7e714584..04998e181bf724f1085e9f38384407d4fcbbd226 100644 (file)
@@ -470,10 +470,9 @@ int CmdHF14AMfDump(const char *Cmd) {
        size_t bytes_read;\r
        for (sectorNo=0; sectorNo<numSectors; sectorNo++) {\r
                bytes_read = fread( keyA[sectorNo], 1, 6, fin );\r
-               if ( bytes_read == 0) {\r
+               if ( bytes_read != 6) {\r
                        PrintAndLog("File reading error.");\r
                        fclose(fin);\r
-                       fin = NULL;\r
                        return 2;\r
                }\r
        }\r
@@ -481,16 +480,14 @@ int CmdHF14AMfDump(const char *Cmd) {
        // Read keys B from file\r
        for (sectorNo=0; sectorNo<numSectors; sectorNo++) {\r
                bytes_read = fread( keyB[sectorNo], 1, 6, fin );\r
-               if ( bytes_read == 0) {\r
+               if ( bytes_read != 6) {\r
                        PrintAndLog("File reading error.");\r
                        fclose(fin);\r
-                       fin = NULL;\r
                        return 2;\r
                }\r
        }\r
        \r
        fclose(fin);\r
-       fin = NULL;\r
                        \r
        PrintAndLog("|-----------------------------------------|");\r
        PrintAndLog("|------ Reading sector access bits...-----|");\r
@@ -643,20 +640,18 @@ int CmdHF14AMfRestore(const char *Cmd) {
        size_t bytes_read;\r
        for (sectorNo = 0; sectorNo < numSectors; sectorNo++) {\r
                bytes_read = fread( keyA[sectorNo], 1, 6, fkeys );\r
-               if ( bytes_read == 0) {\r
+               if ( bytes_read != 6) {\r
                        PrintAndLog("File reading error (dumpkeys.bin).");\r
                        fclose(fkeys);\r
-                       fkeys = NULL;\r
                        return 2;\r
                }\r
        }\r
 \r
        for (sectorNo = 0; sectorNo < numSectors; sectorNo++) {\r
                bytes_read = fread( keyB[sectorNo], 1, 6, fkeys );\r
-               if ( bytes_read == 0) {\r
+               if ( bytes_read != 6) {\r
                        PrintAndLog("File reading error (dumpkeys.bin).");\r
                        fclose(fkeys);\r
-                       fkeys = NULL;\r
                        return 2;\r
                }\r
        }\r
@@ -674,7 +669,7 @@ int CmdHF14AMfRestore(const char *Cmd) {
                        UsbCommand c = {CMD_MIFARE_WRITEBL, {FirstBlockOfSector(sectorNo) + blockNo, keyType, 0}};\r
                        memcpy(c.d.asBytes, key, 6);                    \r
                        bytes_read = fread(bldata, 1, 16, fdump);\r
-                       if ( bytes_read == 0) {\r
+                       if ( bytes_read != 16) {\r
                                PrintAndLog("File reading error (dumpdata.bin).");\r
                                fclose(fdump);\r
                                fdump = NULL;                           \r
@@ -713,7 +708,6 @@ int CmdHF14AMfRestore(const char *Cmd) {
        }\r
        \r
        fclose(fdump);\r
-       fdump = NULL;   \r
        return 0;\r
 }\r
 \r
@@ -789,7 +783,7 @@ int CmdHF14AMfNested(const char *Cmd) {
                switch (isOK) {\r
                        case -1 : PrintAndLog("Error: No response from Proxmark.\n"); break;\r
                        case -2 : PrintAndLog("Button pressed. Aborted.\n"); break;\r
-                       case -3 : PrintAndLog("Tag isn't vulnerable to Nested Attack (its random number generator is not predictable).\n"); break;\r
+                       case -3 : PrintAndLog("Tag isn't vulnerable to Nested Attack (random number generator is not predictable).\n"); break;\r
                        case -4 : PrintAndLog("No valid key found"); break;\r
                        case -5 : \r
                                key64 = bytes_to_num(keyBlock, 6);\r
@@ -1584,7 +1578,7 @@ int CmdHF14AMfSniff(const char *Cmd){
 \r
                        if (res == 1) {                                                         // there is (more) data to be transferred\r
                                if (pckNum == 0) {                                              // first packet, (re)allocate necessary buffer\r
-                                       if (traceLen > bufsize) {\r
+                                       if (traceLen > bufsize || buf == NULL) {\r
                                                uint8_t *p;\r
                                                if (buf == NULL)                                // not yet allocated\r
                                                        p = malloc(traceLen);\r
Impressum, Datenschutz