From 39042d39e8b051f1e696e7e47add07f5958c3cf4 Mon Sep 17 00:00:00 2001 From: jsteube Date: Tue, 21 Jun 2016 12:25:07 +0200 Subject: [PATCH] Fix a race condition in output file handling --- src/hashcat.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hashcat.c b/src/hashcat.c index 24f5c07ee..ae8b19eb7 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -2276,14 +2276,14 @@ static void check_cracked (hc_device_param_t *device_param, const uint salt_pos) uint cpt_cracked = 0; + hc_thread_mutex_lock (mux_display); + for (uint i = 0; i < num_cracked; i++) { const uint hash_pos = cracked[i].hash_pos; if (data.digests_shown[hash_pos] == 1) continue; - hc_thread_mutex_lock (mux_display); - if ((data.opts_type & OPTS_TYPE_PT_NEVERCRACK) == 0) { data.digests_shown[hash_pos] = 1; @@ -2304,11 +2304,11 @@ static void check_cracked (hc_device_param_t *device_param, const uint salt_pos) if (data.salts_done == data.salts_cnt) data.devices_status = STATUS_CRACKED; - hc_thread_mutex_unlock (mux_display); - check_hash (device_param, &cracked[i]); } + hc_thread_mutex_unlock (mux_display); + myfree (cracked); if (cpt_cracked > 0)