Fix TI series detection
authorjsteube <jens.steube@gmail.com>
Sun, 31 Jan 2016 21:53:28 +0000 (22:53 +0100)
committerjsteube <jens.steube@gmail.com>
Sun, 31 Jan 2016 21:53:28 +0000 (22:53 +0100)
src/oclHashcat.c

index 210fd95..45e7071 100644 (file)
@@ -12714,7 +12714,16 @@ int main (int argc, char **argv)
         {
           hc_clGetDeviceInfo (data.ocl, device_param->device, CL_DEVICE_NATIVE_VECTOR_WIDTH_INT, sizeof (vector_width), &vector_width, NULL);
 
-          if ((vendor_id == VENDOR_ID_NV) && (strstr (device_name, " Ti") || strstr (device_name, " TI")))
+          int is_ti = 0;
+
+          const int device_name_len = strlen (device_name);
+
+          if (device_name[device_name_len - 2] == 't') is_ti++;
+          if (device_name[device_name_len - 2] == 'T') is_ti++;
+          if (device_name[device_name_len - 1] == 'i') is_ti++;
+          if (device_name[device_name_len - 1] == 'I') is_ti++;
+
+          if ((vendor_id == VENDOR_ID_NV) && (is_ti == 2))
           {
             // Yeah that's a super bad hack, but there's no other attribute we could use