[Piglit] [PATCH RESEND 3/3] glslparsertest: Avoid uninitialized vars in parse_glsl_version_number.
Paul Berry
stereotype441 at gmail.com
Wed Feb 27 10:32:07 PST 2013
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
More information about the Piglit
mailing list