pull/2387/head
Jens Steube 4 years ago
commit c0554af987

@ -369,31 +369,24 @@ static bool opencl_test_instruction (hashcat_ctx_t *hashcat_ctx, cl_context cont
OCL_PTR *ocl = (OCL_PTR *) backend_ctx->ocl;
// LLVM seems to write an error message (if there's an error) directly to stderr
// and not (as supposted to) into buffer for later request using clGetProgramBuildInfo()
const int fd_stderr = fileno (stderr);
#ifndef DEBUG
#ifndef _WIN
fflush (stderr);
int bak = fcntl(2, F_DUPFD_CLOEXEC);
int tmp = open ("/dev/null", O_WRONLY | O_CLOEXEC);
dup2 (tmp, 2);
close (tmp);
const int stderr_bak = dup (fd_stderr);
#ifdef _WIN
const int tmp = open ("NUL", O_WRONLY);
#else
const int tmp = open ("/dev/null", O_WRONLY);
#endif
dup2 (tmp, fd_stderr);
close (tmp);
#endif
int CL_rc = ocl->clBuildProgram (program, 1, &device, "-Werror", NULL, NULL); // do not use the wrapper to avoid the error message
const int CL_rc = ocl->clBuildProgram (program, 1, &device, NULL, NULL, NULL);
#ifndef DEBUG
#ifndef _WIN
fflush (stderr);
#ifndef __APPLE__
dup3 (bak, 2, O_CLOEXEC);
#else
dup2 (bak, 2);
#endif
close (bak);
#endif
dup2 (stderr_bak, fd_stderr);
close (stderr_bak);
#endif
if (CL_rc != CL_SUCCESS)

Loading…
Cancel
Save