Fix for -I parameter workaround, use chdir () before modifying cpath_real
authorjsteube <jens.steube@gmail.com>
Wed, 13 Jul 2016 09:36:57 +0000 (11:36 +0200)
committerjsteube <jens.steube@gmail.com>
Wed, 13 Jul 2016 09:36:57 +0000 (11:36 +0200)
Fixes https://github.com/hashcat/hashcat/issues/432

src/hashcat.c

index 9d4299e..40adbc6 100644 (file)
@@ -16107,12 +16107,6 @@ 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);
-
       #else
 
       snprintf (cpath, sizeof (cpath) - 1, "%s/OpenCL/", shared_dir);
@@ -16126,6 +16120,25 @@ int main (int argc, char **argv)
         return -1;
       }
 
+      #endif
+
+      if (chdir (cpath_real) == -1)
+      {
+        log_error ("ERROR: %s: %s", cpath_real, strerror (errno));
+
+        return -1;
+      }
+
+      #if _WIN
+
+      naive_replace (cpath_real, '\\', '/');
+
+      // not escaping here, windows has quotes
+
+      snprintf (build_opts, sizeof (build_opts) - 1, "-I \"%s\"", cpath_real);
+
+      #else
+
       naive_escape (cpath_real, PATH_MAX,  ' ', '\\');
 
       snprintf (build_opts, sizeof (build_opts) - 1, "-I %s", cpath_real);
@@ -16157,13 +16170,6 @@ int main (int argc, char **argv)
         "inc_vendor.cl",
       };
 
-      if (chdir (cpath_real) == -1)
-      {
-        log_error ("ERROR: %s: %s", cpath_real, strerror (errno));
-
-        return -1;
-      }
-
       for (int i = 0; i < files_cnt; i++)
       {
         FILE *fd = fopen (files_names[i], "r");