[Piglit] [PATCH] gl-3.2-adj-prims: Fix reference of out-of-scope data.

Vinson Lee vlee at freedesktop.org
Wed Jul 13 23:54:13 UTC 2016


Fix pointer to local outside scope defect reported by Coverity.

CID: 1362489
Fixes: 67db7e28be1f ("gl-3.2-adj-prims: new test of adjacency primitives with rendering options")
Signed-off-by: Vinson Lee <vlee at freedesktop.org>
---
 tests/spec/gl-3.2/adj-prims.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tests/spec/gl-3.2/adj-prims.c b/tests/spec/gl-3.2/adj-prims.c
index 2df764e66d49..9d2f121f2a39 100644
--- a/tests/spec/gl-3.2/adj-prims.c
+++ b/tests/spec/gl-3.2/adj-prims.c
@@ -302,7 +302,9 @@ probe_prims(GLenum prim_mode, const float verts[][2], unsigned num_verts,
 
 	for (prim = 0; prim < num_prims; prim++) {
 		bool pass = false;
-		const float *expected_color = NULL, *bad_color = NULL;
+		const float *expected_color = NULL;
+		float bad_color[4];
+		bool bad_color_found = false;
 		int x, y, i;
 
 		compute_probe_location(prim_mode, prim, verts,
@@ -333,8 +335,13 @@ probe_prims(GLenum prim_mode, const float verts[][2], unsigned num_verts,
 					// check for expected color
 					if (colors_match(expected_color, buf[i]))
 						pass = true;
-					else
-						bad_color = buf[i];
+					else {
+						bad_color_found = true;
+						bad_color[0] = buf[i][0];
+						bad_color[1] = buf[i][1];
+						bad_color[2] = buf[i][2];
+						bad_color[3] = buf[i][3];
+					}
 				}
 			}
 		}
@@ -343,7 +350,7 @@ probe_prims(GLenum prim_mode, const float verts[][2], unsigned num_verts,
 			printf("Failure for %s, "
 			       "prim %u wrong color at (%d,%d)\n",
 			       piglit_get_prim_name(prim_mode), prim, x, y);
-			if (expected_color && bad_color) {
+			if (expected_color && bad_color_found) {
 				printf("Expected %.1g, %.1g, %.1g, %.1g\n",
 				       expected_color[0],
 				       expected_color[1],
-- 
2.7.4



More information about the Piglit mailing list