[Piglit] [PATCH RESEND 3/3] glslparsertest: Avoid uninitialized vars in parse_glsl_version_number.

Eric Anholt eric at anholt.net
Wed Feb 27 10:44:27 PST 2013


Paul Berry <stereotype441 at gmail.com> writes:

> 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);
> +	}

For full pedantry, I think that would be sscanf(...) != 2.

Regardless, the series is:

Reviewed-by: Eric Anholt <eric at anholt.net>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20130227/591d8e03/attachment.pgp>


More information about the Piglit mailing list