diff --git a/client/cmdhfmfhard.c b/client/cmdhfmfhard.c index 8a6922a16..42e607072 100644 --- a/client/cmdhfmfhard.c +++ b/client/cmdhfmfhard.c @@ -1129,7 +1129,13 @@ static bool timeout(void) } -static void *check_for_BitFlipProperties_thread(void *args) +static void +#ifdef __has_attribute +#if __has_attribute(force_align_arg_pointer) +__attribute__((force_align_arg_pointer)) +#endif +#endif +*check_for_BitFlipProperties_thread(void *args) { uint8_t first_byte = ((uint8_t *)args)[0]; uint8_t last_byte = ((uint8_t *)args)[1]; @@ -1701,7 +1707,6 @@ static bool all_bitflips_match(uint8_t byte, uint32_t state, odd_even_t odd_even return false; } } - return true; } @@ -1879,8 +1884,13 @@ static void init_book_of_work(void) } } - -static void *generate_candidates_worker_thread(void *args) +static void +#ifdef __has_attribute +#if __has_attribute(force_align_arg_pointer) +__attribute__((force_align_arg_pointer)) +#endif +#endif +*generate_candidates_worker_thread(void *args) { uint16_t *sum_args = (uint16_t *)args; uint16_t sum_a0 = sums[sum_args[0]]; diff --git a/client/mifarehost.c b/client/mifarehost.c index 24d20dda8..b56ca0859 100644 --- a/client/mifarehost.c +++ b/client/mifarehost.c @@ -268,7 +268,13 @@ int Compare16Bits(const void * a, const void * b) { } // wrapper function for multi-threaded lfsr_recovery32 -void* nested_worker_thread(void *arg) { +void +#ifdef __has_attribute +#if __has_attribute(force_align_arg_pointer) +__attribute__((force_align_arg_pointer)) +#endif +#endif +*nested_worker_thread(void *arg) { struct Crypto1State *p1; StateList_t *statelist = arg; statelist->head.slhead = lfsr_recovery32(statelist->ks1, statelist->nt ^ statelist->uid); @@ -681,7 +687,7 @@ int mfTraceDecode(uint8_t *data_src, int len, bool wantSaveToEmlFile) { switch (traceState) { case TRACE_IDLE: // check packet crc16! - if ((len >= 4) && (!CheckCrc14443(CRC_14443_A, data, len))) { + if ((len >= 4) && (!check_crc(CRC_14443_A, data, len))) { PrintAndLog("DEC| CRC ERROR!!!"); AddLogLine(logHexFileName, "DEC| ", "CRC ERROR!!!"); traceState = TRACE_ERROR; // do not decrypt the next commands diff --git a/client/proxmark3.c b/client/proxmark3.c index 45fc1397e..810c18f86 100644 --- a/client/proxmark3.c +++ b/client/proxmark3.c @@ -104,7 +104,13 @@ bool hookUpPM3() { } // (iceman) if uart_receiver fails a command three times, we conside the device to be offline. -void *uart_receiver(void *targ) { +void +#ifdef __has_attribute +#if __has_attribute(force_align_arg_pointer) +__attribute__((force_align_arg_pointer)) +#endif +#endif +*uart_receiver(void *targ) { struct receiver_arg *arg = (struct receiver_arg*)targ; size_t rxlen; bool tmpsignal; @@ -150,7 +156,13 @@ void *uart_receiver(void *targ) { return NULL; } -void main_loop(char *script_cmds_file, char *script_cmd, bool usb_present) { +void +#ifdef __has_attribute +#if __has_attribute(force_align_arg_pointer) +__attribute__((force_align_arg_pointer)) +#endif +#endif +main_loop(char *script_cmds_file, char *script_cmd, bool usb_present) { struct receiver_arg rarg; char *cmd = NULL;