]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Merge branch 'master' of https://github.com/iceman1001/proxmark3
authoriceman1001 <iceman@iuse.se>
Tue, 2 Aug 2016 14:06:40 +0000 (16:06 +0200)
committericeman1001 <iceman@iuse.se>
Tue, 2 Aug 2016 14:06:40 +0000 (16:06 +0200)
armsrc/legicrf.c
client/cmdanalyse.c
client/cmdhflegic.c

index a725c0bc596aac7e45b80d7f7f9388f10cf61742..c732ee14d6aa2c7909f9721b8a4713289a1ba1df 100644 (file)
@@ -1531,7 +1531,7 @@ static void TransmitForLegic(void)
 // Code a layer 2 command (string of octets, including CRC) into ToSend[],
 // so that it is ready to transmit to the tag using TransmitForLegic().
 //-----------------------------------------------------------------------------
-static void CodeLegicBitsAsReader(const uint8_t *cmd, int bits)
+static void CodeLegicBitsAsReader(const uint8_t *cmd, uint8_t cmdlen, int bits)
 {
        int i, j;
        uint8_t b;
@@ -1539,17 +1539,17 @@ static void CodeLegicBitsAsReader(const uint8_t *cmd, int bits)
        ToSendReset();
 
        // Send SOF
-       for(i = 0; i < 7; i++) {
+       for(i = 0; i < 7; i++)
                ToSendStuffBit(1);
-       }
 
-       for(i = 0; i < bits; i++) {
+
+       for(i = 0; i < cmdlen; i++) {
                // Start bit
                ToSendStuffBit(0);
 
                // Data bits
                b = cmd[i];
-               for(j = 0; j < 8; j++) {
+               for(j = 0; j < bits; j++) {
                        if(b & 1) {
                                ToSendStuffBit(1);
                        } else {
@@ -1566,9 +1566,9 @@ static void CodeLegicBitsAsReader(const uint8_t *cmd, int bits)
 /**
   Convenience function to encode, transmit and trace Legic comms
   **/
-static void CodeAndTransmitLegicAsReader(const uint8_t *cmd, int bits)
+static void CodeAndTransmitLegicAsReader(const uint8_t *cmd, uint8_t cmdlen, int bits)
 {
-       CodeLegicBitsAsReader(cmd, bits);
+       CodeLegicBitsAsReader(cmd, cmdlen, bits);
        TransmitForLegic();
        if (tracing) {
                uint8_t parity[1] = {0x00};
@@ -1579,13 +1579,13 @@ static void CodeAndTransmitLegicAsReader(const uint8_t *cmd, int bits)
 int ice_legic_select_card()
 {
        //int cmd_size=0, card_size=0;
-       uint8_t wakeup[] = { 0x7F};
+       uint8_t wakeup[] = { 0x7F };
        uint8_t getid[] = {0x19};
 
        legic_prng_init(SESSION_IV);
 
        // first, wake up the tag, 7bits
-       CodeAndTransmitLegicAsReader(wakeup, 7);
+       CodeAndTransmitLegicAsReader(wakeup, sizeof(wakeup), 7);
 
        GetSamplesForLegicDemod(1000, TRUE);
 
@@ -1596,7 +1596,7 @@ int ice_legic_select_card()
        
        //while(timer->TC_CV < 387) ; /* ~ 258us */
        //frame_send_rwd(0x19, 6);
-       CodeAndTransmitLegicAsReader(getid, sizeof(getid));
+       CodeAndTransmitLegicAsReader(getid, sizeof(getid), 8);
        GetSamplesForLegicDemod(1000, TRUE);
 
        //if (Demod.len < 14) return 2; 
index 6a8e5bc07edd916309df3132c1acf335c7382336..f2efd3a64a14db905c3d4c2a69be1b898ee4d078 100644 (file)
@@ -188,6 +188,7 @@ int CmdAnalyseCHKSUM(const char *Cmd){
        uint32_t mask = 0xFF;
        bool errors = false;
        int len = 0;
+       memset(data, 0x0, sizeof(data));
        
        while(param_getchar(Cmd, cmdp) != 0x00) {
                switch(param_getchar(Cmd, cmdp)) {
index 0adf3c596b8cf1334cbf278c3b9d4c9bed5a0cdb..731cead1097a5f80b0c56c104bfe81346b75b702 100644 (file)
@@ -611,7 +611,7 @@ int CmdLegicCalcCrc8(const char *Cmd){
        }
        //Validations
        if (errors){
-               if (data != NULL) free(data);
+               if (data) free(data);
                return usage_legic_calccrc8();
        }
        
@@ -624,7 +624,7 @@ int CmdLegicCalcCrc8(const char *Cmd){
                        break;
        }
        
-       if (data != NULL) free(data);
+       if (data) free(data);
        return 0;
 } 
  
Impressum, Datenschutz