From 2ea295171cc857dd43b681d5220b16c61747e678 Mon Sep 17 00:00:00 2001 From: philsmd Date: Wed, 24 Feb 2016 19:50:05 +0100 Subject: [PATCH] this fixes the beta issue #163 (-d and --opencl-platforms not within valid range) --- src/oclHashcat.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/oclHashcat.c b/src/oclHashcat.c index bcd8960e3..8101d1e95 100644 --- a/src/oclHashcat.c +++ b/src/oclHashcat.c @@ -12490,6 +12490,18 @@ int main (int argc, char **argv) return (-1); } + + if (opencl_platforms_filter != (uint) -1) + { + uint platform_cnt_mask = ~((-1 >> platforms_cnt) << platforms_cnt); + + if (opencl_platforms_filter > platform_cnt_mask) + { + log_error ("ERROR: The platform selected by the --opencl-platforms parameter is larger than the number of available platforms (%d)", platforms_cnt); + + return (-1); + } + } } /** @@ -12945,6 +12957,20 @@ int main (int argc, char **argv) return (-1); } + // additional check to see if the user has chosen a device that is not within the range of available devices (i.e. larger than devices_cnt) + + if (devices_filter != (uint) -1) + { + uint devices_cnt_mask = ~((-1 >> devices_cnt) << devices_cnt); + + if (devices_filter > devices_cnt_mask) + { + log_error ("ERROR: The device specified by the --opencl-devices parameter is larger than the number of available devices (%d)", devices_cnt); + + return (-1); + } + } + data.devices_cnt = devices_cnt; data.devices_active = devices_active;