From 057909fdfdead4e7ed75a1094ae25df165952993 Mon Sep 17 00:00:00 2001 From: jsteube Date: Sun, 26 Jun 2016 11:15:29 +0200 Subject: [PATCH] Do not overwrite quit status when user forced it with keypress --- src/hashcat.c | 15 ++++++++++++--- src/shared.c | 8 ++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/hashcat.c b/src/hashcat.c index b524fabf9..4baaa90d1 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -17561,7 +17561,10 @@ int main (int argc, char **argv) logfile_sub_msg ("START"); - data.devices_status = STATUS_INIT; + if ((data.devices_status != STATUS_CRACKED) && (data.devices_status != STATUS_ABORTED) && (data.devices_status != STATUS_QUIT)) + { + data.devices_status = STATUS_INIT; + } memset (data.words_progress_done, 0, data.salts_cnt * sizeof (u64)); memset (data.words_progress_rejected, 0, data.salts_cnt * sizeof (u64)); @@ -18089,7 +18092,10 @@ int main (int argc, char **argv) hc_thread_t *c_threads = (hc_thread_t *) mycalloc (data.devices_cnt, sizeof (hc_thread_t)); - data.devices_status = STATUS_AUTOTUNE; + if ((data.devices_status != STATUS_CRACKED) && (data.devices_status != STATUS_ABORTED) && (data.devices_status != STATUS_QUIT)) + { + data.devices_status = STATUS_AUTOTUNE; + } for (uint device_id = 0; device_id < data.devices_cnt; device_id++) { @@ -18143,7 +18149,10 @@ int main (int argc, char **argv) * create cracker threads */ - data.devices_status = STATUS_RUNNING; + if ((data.devices_status != STATUS_CRACKED) && (data.devices_status != STATUS_ABORTED) && (data.devices_status != STATUS_QUIT)) + { + data.devices_status = STATUS_RUNNING; + } if (initial_restore_done == 0) { diff --git a/src/shared.c b/src/shared.c index ef0601387..4aedad78c 100644 --- a/src/shared.c +++ b/src/shared.c @@ -9206,16 +9206,16 @@ void stop_at_checkpoint () void myabort () { - if (data.devices_status == STATUS_INIT) return; - if (data.devices_status == STATUS_STARTING) return; + //if (data.devices_status == STATUS_INIT) return; + //if (data.devices_status == STATUS_STARTING) return; data.devices_status = STATUS_ABORTED; } void myquit () { - if (data.devices_status == STATUS_INIT) return; - if (data.devices_status == STATUS_STARTING) return; + //if (data.devices_status == STATUS_INIT) return; + //if (data.devices_status == STATUS_STARTING) return; data.devices_status = STATUS_QUIT; }