diff --git a/src/opencl.c b/src/opencl.c index d72cdb064..cd53dd4cd 100644 --- a/src/opencl.c +++ b/src/opencl.c @@ -4752,7 +4752,18 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) hardware_power_all += device_param->hardware_power; } - if (hardware_power_all == 0) return -1; + // Prevent exit from benchmark mode if all devices are skipped due to unstable hash-modes (OSX) + + bool has_skipped_temp = false; + + for (u32 device_id = 0; device_id < opencl_ctx->devices_cnt; device_id++) + { + hc_device_param_t *device_param = &opencl_ctx->devices_param[device_id]; + + if (device_param->skipped_temp == true) has_skipped_temp = true; + } + + if ((hardware_power_all == 0) && (has_skipped_temp == false)) return -1; opencl_ctx->hardware_power_all = hardware_power_all;