]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/nonce2key/crapto1.c
FIX: introduced a bug in a loop by uint8_t inside crapto1.c
[proxmark3-svn] / client / nonce2key / crapto1.c
index 36e21a1ce9b13ddccae09772c407c72c6095c007..f005a9e320e1a113e3d8f89a0be9c0f44e2348eb 100644 (file)
@@ -158,7 +158,14 @@ struct Crypto1State* lfsr_recovery32(uint32_t ks2, uint32_t in)
        // allocate memory for out of place bucket_sort\r
        bucket_array_t bucket;\r
        \r
-       if ( !bucket_malloc(bucket) ) goto out;\r
+       for (uint32_t i = 0; i < 2; i++) {\r
+               for (uint32_t j = 0; j <= 0xff; j++) {\r
+                       bucket[i][j].head = malloc(sizeof(uint32_t)<<14);\r
+                       if (!bucket[i][j].head) {\r
+                                goto out;\r
+                       }\r
+               }\r
+       }\r
 \r
        // initialize statelists: add all possible states which would result into the rightmost 2 bits of the keystream\r
        for(i = 1 << 20; i >= 0; --i) {\r
@@ -181,9 +188,11 @@ struct Crypto1State* lfsr_recovery32(uint32_t ks2, uint32_t in)
        recover(odd_head, odd_tail, oks, even_head, even_tail, eks, 11, statelist, in << 1, bucket);\r
 \r
 out:\r
+       for (uint32_t i = 0; i < 2; i++)\r
+               for (uint32_t j = 0; j <= 0xff; j++)\r
+                       free(bucket[i][j].head);\r
        free(odd_head);\r
        free(even_head);\r
-       bucket_free(bucket);\r
        return statelist;\r
 }\r
 \r
Impressum, Datenschutz