[Piglit] [PATCH] shader_runner: Check return value on sscanf (clip plane / draw arrays)
Jordan Justen
jordan.l.justen at intel.com
Wed Jun 17 11:15:39 PDT 2015
sscanf returns EOF if not all values are scanned. This can be
interpreted as 'true' in these cases leading to the clip plane command
being incorrectly requested.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
---
tests/shaders/shader_runner.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index 38a0fcf..7e5b7b4 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -2339,7 +2339,7 @@ piglit_display(void)
glClear(clear_bits);
} else if (sscanf(line,
"clip plane %d %lf %lf %lf %lf",
- &x, &d[0], &d[1], &d[2], &d[3])) {
+ &x, &d[0], &d[1], &d[2], &d[3]) == 5) {
if (x < 0 || x >= gl_max_clip_planes) {
printf("clip plane id %d out of range\n", x);
piglit_report_result(PIGLIT_FAIL);
@@ -2381,7 +2381,7 @@ piglit_display(void)
&primcount,
c + 0, c + 1, c + 2, c + 3);
draw_instanced_rect(primcount, c[0], c[1], c[2], c[3]);
- } else if (sscanf(line, "draw arrays %31s %d %d", s, &x, &y)) {
+ } else if (sscanf(line, "draw arrays %31s %d %d", s, &x, &y) == 3) {
GLenum mode = decode_drawing_mode(s);
int first = x;
size_t count = (size_t) y;
--
2.1.4
More information about the Piglit
mailing list