[Piglit] [PATCH 3/3] arb_texture_view: fix security format warnings

Ross Burton ross.burton at intel.com
Fri Nov 30 10:45:06 UTC 2018


If built with -Werror=format-security then Piglit fails to build:

/tests/spec/arb_texture_view/rendering-layers-image.c:150:8:
error: format not a string literal and no format arguments [-Werror=format-security]
         (desc)); \
         ^~~~~~

In this case test->uniform_type is being turned into a string using snprintf()
and then passed to piglit_report_subtest_result() which takes a format string,
but GCC can't verify the format.

As _subtest_report() takes a format string, we can just remove the snprintf()
and let it construct the label.

Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 tests/spec/arb_texture_view/rendering-layers-image.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/tests/spec/arb_texture_view/rendering-layers-image.c b/tests/spec/arb_texture_view/rendering-layers-image.c
index 415b01657..070e29a68 100644
--- a/tests/spec/arb_texture_view/rendering-layers-image.c
+++ b/tests/spec/arb_texture_view/rendering-layers-image.c
@@ -142,12 +142,12 @@ test_render_layers(const struct test_info *test)
 	return pass;
 }
 
-#define X(f, desc) \
+#define X(f, test_type) \
 	do { \
 		const bool subtest_pass = (f); \
 		piglit_report_subtest_result(subtest_pass \
 						 ? PIGLIT_PASS : PIGLIT_FAIL, \
-						 (desc)); \
+						 "layers rendering of %s", (test_type)); \
 		pass = pass && subtest_pass; \
 	} while (0)
 
@@ -157,9 +157,7 @@ piglit_display(void)
 	bool pass = true;
 	for (int test_idx = 0; test_idx < ARRAY_SIZE(tests); test_idx++) {
 		const struct test_info *test = &tests[test_idx];
-		char test_name[128];
-		snprintf(test_name, sizeof(test_name), "layers rendering of %s", test->uniform_type);
-		X(test_render_layers(test), test_name);
+		X(test_render_layers(test), test->uniform_type);
 	}
 #undef X
 	pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
-- 
2.11.0



More information about the Piglit mailing list