Previously, if the user specified an ill-formed GLSL version number (or the implementation supplied an ill-formed number in its response to glGetString(GL_SHADING_LANGUAGE_VERSION)), glslparsertest would access uninitialized variables, resulting in unpredictable (and often confusing) behaviour.
With this patch, glslparser test accepts version numbers either of the form "<int>" or "<int>.<int>". Ill-formed version numbers lead to a test failure. --- tests/glslparsertest/glslparsertest.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/glslparsertest/glslparsertest.c b/tests/glslparsertest/glslparsertest.c index 43bef03..c9696be 100644 --- a/tests/glslparsertest/glslparsertest.c +++ b/tests/glslparsertest/glslparsertest.c @@ -339,10 +339,14 @@ int process_options(int argc, char **argv) static unsigned parse_glsl_version_number(const char *str) { - unsigned major; - unsigned minor; + unsigned major = 0; + unsigned minor = 0; + + if (sscanf(str, "%u.%u", &major, &minor) == 0) { + printf("Ill-formed GLSL version number: %s\n", str); + piglit_report_result(PIGLIT_FAIL); + } - sscanf(str, "%u.%u", &major, &minor); return (major * 100) + minor; } -- 1.8.1.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit