diff --git a/src/opencl.c b/src/opencl.c index 6d1da0414..53bea078a 100644 --- a/src/opencl.c +++ b/src/opencl.c @@ -4298,7 +4298,12 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) tmp_device[c] = ocl->clCreateBuffer (device_param->context, CL_MEM_READ_WRITE, MAX_ALLOC_CHECKS_SIZE, NULL, &CL_err); - if (CL_err != CL_SUCCESS) break; + if (CL_err != CL_SUCCESS) + { + c--; + + break; + } CL_err = ocl->clEnqueueReadBuffer (device_param->command_queue, tmp_device[c], CL_TRUE, 0, MAX_ALLOC_CHECKS_SIZE, tmp_host, 0, NULL, NULL); @@ -4309,8 +4314,6 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) if (CL_err != CL_SUCCESS) break; } - if (c >= 1) c--; - device_param->device_available_mem = c * MAX_ALLOC_CHECKS_SIZE; // clean up