diff --git a/docs/changes.txt b/docs/changes.txt index 5229a4577..06ee1d9b9 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -4,13 +4,14 @@ ## Features ## -- New option --progress-only: Quickly provides ideal progress step size and time to process it per device based on the user hashes and selected options, then quit +- New option --progress-only: Quickly provides ideal progress step size and time to process on the user hashes and selected options, then quit - Files: Use $HEX[...] in case the password includes the separater character, increases potfile reading performance ## ## Bugs ## +- Fixed infinite loop when using --loopback in case all hashes have been cracked - Fixed double fclose() using AMDGPU-Pro on sysfs compatible platform: Leading to segfault - Removed access to readlink() on FreeBSD: Causes problem building hashcat diff --git a/src/hashcat.c b/src/hashcat.c index 91a2fbbf4..d35a74821 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -293,11 +293,14 @@ static int inner2_loop (hashcat_ctx_t *hashcat_ctx) { for (induct_ctx->induction_dictionaries_pos = 0; induct_ctx->induction_dictionaries_pos < induct_ctx->induction_dictionaries_cnt; induct_ctx->induction_dictionaries_pos++) { - const int rc_inner2_loop = inner2_loop (hashcat_ctx); + if (status_ctx->devices_status != STATUS_CRACKED) + { + const int rc_inner2_loop = inner2_loop (hashcat_ctx); - if (rc_inner2_loop == -1) myabort (hashcat_ctx); + if (rc_inner2_loop == -1) myabort (hashcat_ctx); - if (status_ctx->run_main_level3 == false) break; + if (status_ctx->run_main_level3 == false) break; + } unlink (induct_ctx->induction_dictionaries[induct_ctx->induction_dictionaries_pos]); }