]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhftopaz.c
Fixes a double-free issue in CloseProxmark: (#617)
[proxmark3-svn] / client / cmdhftopaz.c
index bf0f5dcfed6ba762b93659294655eeed7967d303..b0b8a3d2c642f0edaa3fecb623cb24f766a0847b 100644 (file)
@@ -8,17 +8,18 @@
 // High frequency Topaz (NFC Type 1) commands
 //-----------------------------------------------------------------------------
 
 // High frequency Topaz (NFC Type 1) commands
 //-----------------------------------------------------------------------------
 
+#include "cmdhftopaz.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include "cmdmain.h"
 #include "cmdparser.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include "cmdmain.h"
 #include "cmdparser.h"
-#include "cmdhftopaz.h"
 #include "cmdhf14a.h"
 #include "ui.h"
 #include "mifare.h"
 #include "cmdhf14a.h"
 #include "ui.h"
 #include "mifare.h"
-#include "proxmark3.h"
+#include "comms.h"
 #include "iso14443crc.h"
 #include "protocols.h"
 
 #include "iso14443crc.h"
 #include "protocols.h"
 
@@ -337,7 +338,7 @@ static void topaz_print_control_TLVs(uint8_t *memory)
                if (TLV_type == 0x02) {                 // a Reserved Memory Control TLV
                        uint8_t pages_addr = TLV_value[0] >> 4;
                        uint8_t byte_offset = TLV_value[0] & 0x0f;
                if (TLV_type == 0x02) {                 // a Reserved Memory Control TLV
                        uint8_t pages_addr = TLV_value[0] >> 4;
                        uint8_t byte_offset = TLV_value[0] & 0x0f;
-                       uint8_t size_in_bytes = TLV_value[1] ? TLV_value[1] : 256;
+                       uint16_t size_in_bytes = TLV_value[1] ? TLV_value[1] : 256;
                        uint8_t bytes_per_page = 1 << (TLV_value[2] & 0x0f);
                        uint16_t area_start = pages_addr * bytes_per_page + byte_offset;
                        PrintAndLog("Reserved Memory of %d bytes at byte offset 0x%02x.", 
                        uint8_t bytes_per_page = 1 << (TLV_value[2] & 0x0f);
                        uint16_t area_start = pages_addr * bytes_per_page + byte_offset;
                        PrintAndLog("Reserved Memory of %d bytes at byte offset 0x%02x.", 
Impressum, Datenschutz