---
 src/compiler/glsl/standalone.cpp | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/compiler/glsl/standalone.cpp b/src/compiler/glsl/standalone.cpp
index 52554bb92a..b9cee23642 100644
--- a/src/compiler/glsl/standalone.cpp
+++ b/src/compiler/glsl/standalone.cpp
@@ -459,19 +459,22 @@ standalone_compile_shader(const struct standalone_options 
*_options,
       if (len < 6)
          goto fail;
 
-      const char *const ext = & files[i][len - 5];
+      const char *ext = & files[i][len - 5];
       /* TODO add support to read a .shader_test */
-      if (strncmp(".vert", ext, 5) == 0 || strncmp(".glsl", ext, 5) == 0)
+      if (*ext != '.')
+         goto fail;
+      ++ext;
+      if (memcmp("vert", ext, 4) == 0 || memcmp("glsl", ext, 4) == 0)
         shader->Type = GL_VERTEX_SHADER;
-      else if (strncmp(".tesc", ext, 5) == 0)
+      else if (memcmp("tesc", ext, 4) == 0)
         shader->Type = GL_TESS_CONTROL_SHADER;
-      else if (strncmp(".tese", ext, 5) == 0)
+      else if (memcmp("tese", ext, 4) == 0)
         shader->Type = GL_TESS_EVALUATION_SHADER;
-      else if (strncmp(".geom", ext, 5) == 0)
+      else if (memcmp("geom", ext, 4) == 0)
         shader->Type = GL_GEOMETRY_SHADER;
-      else if (strncmp(".frag", ext, 5) == 0)
+      else if (memcmp("frag", ext, 4) == 0)
         shader->Type = GL_FRAGMENT_SHADER;
-      else if (strncmp(".comp", ext, 5) == 0)
+      else if (memcmp("comp", ext, 4) == 0)
          shader->Type = GL_COMPUTE_SHADER;
       else
          goto fail;
-- 
2.11.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to