windows path update
[hashcat.git] / src / hashcat.c
index a9d9bb3..49458b8 100644 (file)
@@ -413,7 +413,7 @@ const char *USAGE_BIG[] =
   "     --cpu-affinity            | Str  | Locks to CPU devices, separate with comma            | --cpu-affinity=1,2,3",
   "     --opencl-platforms        | Str  | OpenCL platforms to use, separate with comma         | --opencl-platforms=2",
   " -d, --opencl-devices          | Str  | OpenCL devices to use, separate with comma           | -d 1",
-  "     --opencl-device-types     | Str  | OpenCL device-types to use, separate with comma      | --opencl-device-type=1",
+  " -D, --opencl-device-types     | Str  | OpenCL device-types to use, separate with comma      | -D 1",
   "     --opencl-vector-width     | Num  | Manual override OpenCL vector-width to X             | --opencl-vector=4",
   " -w, --workload-profile        | Num  | Enable a specific workload profile, see pool below   | -w 3",
   " -n, --kernel-accel            | Num  | Manual workload tuning, set outerloop step size to X | -n 64",
@@ -5959,7 +5959,7 @@ int main (int argc, char **argv)
   #define IDX_CPU_AFFINITY              0xff25
   #define IDX_OPENCL_DEVICES            'd'
   #define IDX_OPENCL_PLATFORMS          0xff72
-  #define IDX_OPENCL_DEVICE_TYPES       0xff73
+  #define IDX_OPENCL_DEVICE_TYPES       'D'
   #define IDX_OPENCL_VECTOR_WIDTH       0xff74
   #define IDX_WORKLOAD_PROFILE          'w'
   #define IDX_KERNEL_ACCEL              'n'
@@ -5983,7 +5983,7 @@ int main (int argc, char **argv)
   #define IDX_CUSTOM_CHARSET_3          '3'
   #define IDX_CUSTOM_CHARSET_4          '4'
 
-  char short_options[] = "hVvm:a:r:j:k:g:o:t:d:n:u:c:p:s:l:1:2:3:4:ibw:";
+  char short_options[] = "hVvm:a:r:j:k:g:o:t:d:D:n:u:c:p:s:l:1:2:3:4:ibw:";
 
   struct option long_options[] =
   {
@@ -15401,7 +15401,7 @@ int main (int argc, char **argv)
 
       snprintf (cpath, sizeof (cpath) - 1, "%s\\OpenCL\\", shared_dir);
 
-      char cpath_real[MAX_PATH] = { 0 };
+      char *cpath_real = mymalloc (MAX_PATH);
 
       if (GetFullPathName (cpath, MAX_PATH, cpath_real, NULL) == 0)
       {
@@ -15410,13 +15410,19 @@ int main (int argc, char **argv)
         return -1;
       }
 
+      naive_replace (cpath_real, '\\', '/');
+
+      // not escaping here, windows has quotes
+
       snprintf (build_opts, sizeof (build_opts) - 1, "-I \"%s\"", cpath_real);
 
+      myfree (cpath_real);
+
       #else
 
       snprintf (cpath, sizeof (cpath) - 1, "%s/OpenCL/", shared_dir);
 
-      char cpath_real[PATH_MAX] = { 0 };
+      char *cpath_real = mymalloc (PATH_MAX);
 
       if (realpath (cpath, cpath_real) == NULL)
       {
@@ -15425,12 +15431,12 @@ int main (int argc, char **argv)
         return -1;
       }
 
-      char cpath_escaped[1024] = { 0 };
-
-      naive_escape (cpath_real, cpath_escaped, sizeof (cpath_escaped));
+      naive_escape (cpath_real, PATH_MAX,  ' ', '\\');
 
       snprintf (build_opts, sizeof (build_opts) - 1, "-I %s", cpath_real);
 
+      myfree (cpath_real);
+
       #endif
 
       // we don't have sm_* on vendors not NV but it doesn't matter
@@ -18121,6 +18127,11 @@ int main (int argc, char **argv)
          * create cracker threads
          */
 
+        if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
+
+        if (data.devices_status == STATUS_ABORTED) break;
+        if (data.devices_status == STATUS_QUIT)    break;
+
         data.devices_status = STATUS_RUNNING;
 
         if (initial_restore_done == 0)