From 242d991def886509edbeaa47b2bf9e7487407de8 Mon Sep 17 00:00:00 2001 From: jsteube Date: Mon, 6 Aug 2018 10:25:19 +0200 Subject: [PATCH] Fix memleak in memory evaluation --- src/opencl.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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