From 5c338de519115f64477d2918511fa1ee7921763f Mon Sep 17 00:00:00 2001 From: jsteube Date: Sun, 26 Jun 2016 15:55:23 +0200 Subject: [PATCH] Fix race condition in thread_keypress --- src/hashcat.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/hashcat.c b/src/hashcat.c index 4baaa90..e57f4ba 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -18201,11 +18201,6 @@ int main (int argc, char **argv) local_free (c_threads); - if ((data.devices_status != STATUS_CRACKED) && (data.devices_status != STATUS_ABORTED) && (data.devices_status != STATUS_QUIT) && (data.devices_status != STATUS_BYPASS)) - { - data.devices_status = STATUS_EXHAUSTED; - } - logfile_sub_var_uint ("status-after-work", data.devices_status); data.restore = 0; @@ -18265,11 +18260,11 @@ int main (int argc, char **argv) global_free (subid); - // from this point we handle bypass as exhausted + // from this point we handle bypass as running if (data.devices_status == STATUS_BYPASS) { - data.devices_status = STATUS_EXHAUSTED; + data.devices_status = STATUS_RUNNING; } // finalize task @@ -18337,6 +18332,11 @@ int main (int argc, char **argv) // wait for non-interactive threads + if ((data.devices_status != STATUS_CRACKED) && (data.devices_status != STATUS_ABORTED) && (data.devices_status != STATUS_QUIT)) + { + data.devices_status = STATUS_EXHAUSTED; + } + for (uint thread_idx = 0; thread_idx < ni_threads_cnt; thread_idx++) { hc_thread_wait (1, &ni_threads[thread_idx]); -- 2.25.1