summaryrefslogtreecommitdiff
path: root/app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch')
-rw-r--r--app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch b/app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch
new file mode 100644
index 000000000000..52120e0e05c4
--- /dev/null
+++ b/app-crypt/hashcat/files/hashcat-6.0.0-missing-not-fatal.patch
@@ -0,0 +1,53 @@
+diff --git a/docs/changes.txt b/docs/changes.txt
+index 1527da46..420c2102 100644
+--- a/docs/changes.txt
++++ b/docs/changes.txt
+@@ -1,3 +1,11 @@
++* changes v6.0.0 -> v6.0.x
++
++##
++## Improvements
++##
++
++- OpenCL Runtime: Reinterpret return code CL_DEVICE_NOT_FOUND from clGetDeviceIDs() as non-fatal
++
+ * changes v5.1.0 -> v6.0.0
+
+ ##
+diff --git a/src/backend.c b/src/backend.c
+index 80fdbb38..7f79879f 100644
+--- a/src/backend.c
++++ b/src/backend.c
+@@ -5185,7 +5185,31 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx)
+ {
+ event_log_error (hashcat_ctx, "clGetDeviceIDs(): %s", val2cstr_cl (CL_rc));
+
+- return -1;
++ // Special handling for CL_DEVICE_NOT_FOUND, see: https://github.com/hashcat/hashcat/issues/2455
++
++ #define IGNORE_DEVICE_NOT_FOUND 1
++
++ if (IGNORE_DEVICE_NOT_FOUND)
++ {
++ backend_ctx_t *backend_ctx = hashcat_ctx->backend_ctx;
++
++ OCL_PTR *ocl = (OCL_PTR *) backend_ctx->ocl;
++
++ const cl_int CL_err = ocl->clGetDeviceIDs (opencl_platform, CL_DEVICE_TYPE_ALL, DEVICES_MAX, opencl_platform_devices, &opencl_platform_devices_cnt);
++
++ if (CL_err == CL_DEVICE_NOT_FOUND)
++ {
++ // we ignore this error
++ }
++ else
++ {
++ return -1;
++ }
++ }
++ else
++ {
++ return -1;
++ }
+ }
+
+ opencl_platforms_devices[opencl_platforms_idx] = opencl_platform_devices;